Форум программистов, компьютерный форум CyberForum.ru

Возрат массива из функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ char конвертация http://www.cyberforum.ru/cpp-beginners/thread969854.html
Здравствуйте, есть кусок кода какой в принципе понятен как он работает ну вот только не могу понять строку sum=min+max+carry-2*'0'; именно -2*0; И на бумажке питалась понять, просто как можно сложить int + char, получается бред. Заодно спрошу (char)? Это перевод типа int в char так? string operator+(string sum1, string sum2){ string result =""; int carry=0; int sum=0; int i;...
C++ Структура. Вывести информацию по студентам в порядке уменьшения среднего балла Есть вот такая задача: В деканате хранится следующая информация о студентах: ФИО, номер группы, оценки за последнюю сессию. Вывести информацию по студентам в порядке уменьшения среднего балла. Номер группы для поиска пользователь вводит самостоятельно. Не знаю как сделать сортировку по среднему баллу. Так же не знаю как сделать поиск по номеру группы. Подскажите, пожалуйста. http://www.cyberforum.ru/cpp-beginners/thread969847.html
Связь между классами C++
Здравствуйте друзья. У меня не получается из одного класса выбрать информацию вводимую с клавиатуры и сделать так, чтобы она выводилась в другом классе. Может я не очень ясно объяснил, но вот код. #include <iostream> using namespace std; class Computer { public: char model;
C++ Вычислить выражение (простейший цикл)
Добрый день, помогите разобраться в задаче! Условие: Даны целые n, k (n\geq k\geq 0). Вычислить \frac{n(n-1)...(n-k+1)}{k!}. У меня получилось так, но #include <iostream.h> int main() { int f,i,t,n,k; float res;
C++ Как в шахматах учесть условие защиты одной фигуры другой http://www.cyberforum.ru/cpp-beginners/thread969837.html
Доброго времени суток! Требовалось написать программу,которая проверяет,находится ли король под боем и от какой ладьи есть угроза. Условие: поле 8 на 8,черный король и 3 белые ладьи. Программа написана,но в процессе тестировки оказалось,что условия защиты не соблюдены (что ладья не может бить короля через другую ладью). Как это исправить?
C++ SerialPort в C++ Привет всем! Я начинаю изучать C++, помогите разобраться. Нужно по сериал порту передать строку. как это сделать? Пишу на c++ win32 console приложение. Добавлено через 10 часов 22 минуты Знаю как сделать это на C#. 1) Создать порт sp = new SerialPort; 2) Открыть sp.open(); 3) Отправить строку sp.write("Blablabla"); подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6172 / 2901 / 284
Регистрация: 04.12.2011
Сообщений: 7,722
Записей в блоге: 3
07.10.2013, 00:25     Возрат массива из функции
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#include <iostream>
#include <string>
#include <cstdlib>
#include <Windows.h>
using namespace std;
 
class NOTEC
{
    public:
        NOTEC()
        {
            NAME="";
            TELE=-1;
            BDAY[0]=-1;
            BDAY[1]=-1;
            BDAY[2]=-1;
        }
        NOTEC(string a, long long int b, int c[])
        {
            NAME=a;
            TELE=b;
            BDAY[1]=c[0];
            BDAY[2]=c[1];
            BDAY[3]=c[2];
        }
        NOTEC(const NOTEC &orig)
        {
            if(this != &orig){
            NAME=orig.NAME;
            TELE=orig.TELE;
            BDAY[0]=orig.BDAY[0];
            BDAY[1]=orig.BDAY[1];
            BDAY[2]=orig.BDAY[2];
            }
        }
 
        void err_assert(string err) const {//можно решить и выбрасывать исключения но пока так...
cout << err<<"\n";
system("pause"); 
exit(1);
        }
 
        int operator[](int ind) const {
            if(ind > -1 && ind < 3)
            return BDAY[ind];
            else
err_assert("Аварийное завершение в  int operator[](int )\n выход за границы массива");
        }
 
        void set_nam(string a)
        {
            if(!a.empty())  NAME=a;
            else
err_assert("Аварийное завершение в  void set_nam(string )\n имя не может быть пустой строкой");
        }
 
        void set_tel(long long int b)
        {
           if(b>0) TELE=b;
           else{
err_assert("Аварийное завершение в  void set_tel(string )\n номер телефоне не может быть <0 ");
           }
        }
 
        void set_BDAY(int c[])
        {//хотя тут попробуем симитировать защищённый ввод иначе не было смысла
            //объявлять BDAY private
            //проверку на попытку ввести 29 февраля в не высокосный год и пр. 
            //оставляю Вам
            // я только сделаю примитивный шаблон
if(c[2]>0)BDAY[2]=c[2];//год сначала потому, что потом проверяете дату (по году)
else{
err_assert("Аварийное завершение в set_BDAY(int c[])\n год не может быть таким ");
           }    
if(c[1]>0 && c[1] < 13)BDAY[1]=c[1];//это где угодно можно, но пусть уж всё наоборот
else{
err_assert("Аварийное завершение в set_BDAY(int c[])\n месяц не может быть таким ");
           }
            if(c[0]>0 && c[0] < 31/*хоть так*/)BDAY[0]=c[0];//тут условие и логику можно усложнить с учетом сказанного)
else{
err_assert("Аварийное завершение в set_BDAY(int c[])\n день не может быть таким ");
           }      
        }
        string get_nam()
        {
            return NAME;
        }
        long long int get_tel()
        {
            return TELE;
        } 
 
    private:
        string NAME;
        long long int TELE;
        int BDAY[3];
 
};
 
int main()
{
    string a;
    long long int b;
    int c[3];
    
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int numb;
    cout<<"Сколько сотрудников: ";
    cin >> numb;
    NOTEC *BLOCKNOTE= new NOTEC [numb]; 
  
    cout<<"Введите Имя, Телефон, Дату рождения\n";
    for(int i=0;i<numb;i++)
    { 
        cout << "Имя : ";
        cin >> a;
        cout << endl;
        BLOCKNOTE[i].set_nam(a);
        
        cout << "Телефон : ";
        cin >>b;
        BLOCKNOTE[i].set_tel(b);
        cout << endl;
 
        cout << "Год рождения : ";
        cin >>c[2];
        cout << endl;
 
        cout << "Месяц года : ";
        cin >>c[1];
        cout << endl;
 
        cout << "День месяца : ";
        cin >>c[0];
        cout << endl;
 
        BLOCKNOTE[i].set_BDAY(c);
         
    }
    cout << "Введены такие люди:" << endl;
    cout << "Имя\tТелефон\tдень\tмесяц\tгод" << endl;
    for(int j=0;j<numb;j++)
    {
cout<<BLOCKNOTE[j].get_nam()<<"\t"<<BLOCKNOTE[j].get_tel()<<"\t"<<BLOCKNOTE[j][0]<<"\t"<<BLOCKNOTE[j][1]<<"\t"<<BLOCKNOTE[j][2]<<endl;
    // а тут его вывести?
    }
system("pause"); 
    return 0;
    }
До ума доведите сами.
 
Текущее время: 11:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru