Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
JaySeven
1 / 1 / 0
Регистрация: 24.05.2013
Сообщений: 41
#1

Ошибка несоответствия! - C++

02.11.2013, 17:30. Просмотров 685. Ответов 18
Метки нет (Все метки)

C++ (Qt)
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
#include <iostream>
#include <string>
using namespace std;
 
struct mecenats {
       string name;
       double donate;
       };
 
int main()
{
    int num;
    cout << "Ââåäèòå êîëè÷åñòâî ìåöåГ*Г*òîâ: ";
    cin >> num;
    mecenats * ps = new mecenats [num];
    int i = 0;
    while (i < num) {
          cout << "Ââåäèòå èìÿ ìåöåГ*Г*ГІГ*: ";
          getline(cin, (ps -> name[i]));
          cout << "Ââåäèòå ñóììó ïîæåðòâîâГ*Г*ГЁГ©: ";
          cin >> (ps -> donate[i]);
          cin.get();
          ++i;
          }
    int j;
    while (j < num) {
    while (j == 0)
    cout << "GRAND PATRONS:\n";
    if ((ps -> donate[j]) >= 10000)
       cout << ps -> name[j] << endl; 
       if (j == (num - 1))
            cout << "Others patrons:\n";
       else if ((ps -> donate[j]) <= 10000) {
       int i = 0;
       while (i < num) { 
            if ((ps -> donate[i]) <= 10000)
            cout << (ps -> name[i]) << endl;
            }
            }
       
        ++j;
}
        delete [] ps;
        
        system("pause >> void");
        
        return 0;
        }
Выполняю задачки из книги. Вот задание:
Постройте программу, которая отслеживает пожертвования в Общество
Защиты Влиятельных Лиц. Она должна запрашивать у пользователя
количество меценатов, а затем приглашать вводить их имена и суммы пожертвований от
каждого. Информация должна сохраняться в динамически выделяемом массиве
структур. Каждая структура должна иметь два члена: символьный массив (или
объект string) для хранения имени и переменную-член типа double — для
хранения суммы пожертвования. После чтения всех данных программа должна
отображать имена и суммы пожертвований тех, кто не пожалел $10 000 и
более. Этот список должен быть озаглавлен меткой "Grand Patrons". После этого
программа должна выдать список остальных жертвователей. Он должен быть
озаглавлен "Patrons". Если в одной из двух категорий не окажется никого,
программа должна напечатать "попе". Помимо отображения двух категорий,
никакой другой сортировки делать не нужно.

Ps выскакивает ошибка типа
19 C:\Dev-Cpp\Examples\My work\6.6.cpp no matching function for call to `getline(std::istream&, char&)'
и типа
21 C:\Dev-Cpp\Examples\My work\6.6.cpp invalid types `double[int]' for array subscript
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2013, 17:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ошибка несоответствия! (C++):

функция reverse(). ошибка несоответствия типов - C++
где-то накосячил с указателями видимо... объясните, пожалуйста, где и почему. суть задания - создать функцию reverse() с 2...

Ошибка несоответствия типов - Delphi
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids,...

Ошибка несоответствия типов - VBA
Sub AleVToS1k() Dim L() Dim M() n = 8 ReDim L(n) ReDim M(n) For i = 1 To n L(i) =...

Ошибка несоответствия типов при вычислениях - Visual Basic
Помогите, пожалуйста, найти ошибку! Type mismatch...не могу понять почему? Dim R, BS, TI As Single Dim NS, RD As Single ...

Замена элементов в массиве и ошибка несоответствия типов - C (СИ)
for(int i=0;i&lt;h;i++) for(int j=0;j&lt;w;j++) { if(rand()%10==iStarsCount) { mas = &quot;*&quot;; iStarsCount--; ...

Ошибка несоответствия типов данных при удалении из Access - C#
При попытке удалить поля возникает ошибка несоответствия типов данных в выражении условия отбора. cmd.CommandText = &quot;DELETE * FROM...

18
Croessmah
Ушел
13764 / 8014 / 923
Регистрация: 27.09.2012
Сообщений: 19,724
Записей в блоге: 3
Завершенные тесты: 1
02.11.2013, 18:05 #16
Цитата Сообщение от JaySeven Посмотреть сообщение
Чтобы программа после компиляции сразу не закрывалась
а теперь посмотрите на файл void, который появился в Вашей файловой системе
0
JaySeven
1 / 1 / 0
Регистрация: 24.05.2013
Сообщений: 41
02.11.2013, 18:10  [ТС] #17
Цитата Сообщение от Croessmah Посмотреть сообщение
а теперь посмотрите на файл void, который появился в Вашей файловой системе
Где именно смотреть и какие от него побочки поделитесь пожалуста

Добавлено через 1 минуту
Цитата Сообщение от JaySeven Посмотреть сообщение
Где именно смотреть и какие от него побочки поделитесь пожалуста
И если он вреден, то, пожалуста, предложите альтернативы.
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6952 / 3235 / 322
Регистрация: 04.12.2011
Сообщений: 8,928
Записей в блоге: 5
02.11.2013, 18:35 #18
как вариант
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
#include <iostream>
#include<string>
#include <windows.h>
using namespace std;
struct Mecenats{
string name;
double money;
};
int main()
{
SetConsoleCP (1251); SetConsoleOutputCP (1251);
int num=0;
cout<<"Введите количество меценатов ";
cin>>num;
Mecenats *mecenats = new Mecenats[num];
int *who_is_hu= new int[num];
double not_hu=10000;
int i = 0;
while(i < num){
cout<<"name ";
cin>>mecenats[i].name;
cout<<"money ";
cin>>mecenats[i].money;
if(mecenats[i].money>=not_hu)who_is_hu[i]=1;
else
who_is_hu[i]=0;
++i;
}
cout << endl;
cout<<"Not_hu"<<endl;
i=0;
while(i<num){
if(who_is_hu[i]==1)cout<<mecenats[i].name<<endl;
++i;
}
cout << endl;
cout<<"Hu"<<endl;
i=0;
while(i<num){
if(who_is_hu[i]==0)cout<<mecenats[i].name<<endl;
++i;
}
cout << endl;
system ("pause" );
    return 0;
}
0
Chang875
1 / 1 / 0
Регистрация: 14.01.2015
Сообщений: 12
06.03.2015, 15:21 #19
Вот мой вариант решения, но возникли проблемы, как я подозреваю, с перегрузкой функций.
Данный вариант работает, но если я пробую применить метод getline к строчке cin >> pzvl[i].name;
т. е. getline (cin, pzvl[i].name), то программа вылетает с ошибкой. Получается что читает только имя спонсора, а не имя и фамилию.=

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
/*Постройте программу, которая отслеживает пожертвования в Общество
Защиты Влиятельных Лиц.Она должна запрашивать у пользователя
количество меценатов, а затем приглашать вводить их имена и суммы пожертвований от
каждого.Информация должна сохраняться в динамически выделяемом массиве
структур.Каждая структура должна иметь два члена : символьный массив(или
объект string) для хранения имени и переменную - член типа double — для
хранения суммы пожертвования.После чтения всех данных программа должна
отображать имена и суммы пожертвований тех, кто не пожалел $10 000 и
более.Этот список должен быть озаглавлен меткой "Grand Patrons".После этого
программа должна выдать список остальных жертвователей.Он должен быть
озаглавлен "Patrons".Если в одной из двух категорий не окажется никого,
программа должна напечатать "попе".Помимо отображения двух категорий,
никакой другой сортировки делать не нужно.*/
#include <iostream>
#include <string>
using namespace std;
    struct zvl
    {
        string name;
        double pojert;
    };
 
    int main()
{
    setlocale(LC_ALL, "Russian");
    
    int kolvo_spons = 0;
        cout << "Введите количество спонсоров: ";
        cin >> kolvo_spons;
        cout << endl;
        
        zvl *pzvl = new zvl[kolvo_spons];
        
        for (int i = 0; i != kolvo_spons; i++)
        {
            cout << "Введите имя спонсора: ";
            cin >> pzvl[i].name;
            cout << endl;
            cout << "Введите сумму пожертвования: ";
            cin >> pzvl[i].pojert;
            cout << endl;
        }
        
        cout << "\tGrand Patrons\n\n";
        
        for (int j = 0; j != kolvo_spons; j++)
        {
            if (pzvl[j].pojert > 10000)
            {
                
                cout << "Пожертвовавшие свыше 10 000: ";
                cout << "имя: " << pzvl[j].name << endl;
                cout << "сумма : " << pzvl[j].pojert << endl;
                cout << endl;
            }
        }
        cout << "\tPatrons\n\n" << endl;
        for (int j = 0; j != kolvo_spons; j++)
        {
            if (pzvl[j].pojert < 10000)
            {
                cout << "Пожертвовавшие ниже 10 000: ";
                cout << "имя: " << pzvl[j].name << endl;
                cout << "сумма : " << pzvl[j].pojert << endl;
                cout << endl;
            }else
                cout << "none";
 
            delete[] pzvl;
 
            system("pause");
            return 0;
}
0
06.03.2015, 15:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2015, 15:21
Привет! Вот еще темы с ответами:

Ошибка несоответствия типов при ComboBox1.ItemIndex:=true - Delphi
Всем программистам здравствуйте! Вот есть кусочек программки: if (ComboBox1.ItemIndex:=true) then ComboBox2.enabled:=true; for i :=...

Вывод таблицы соответствия кодов ASCII и символов алфавита. Ошибка несоответствия типов - Turbo Pascal
program asc2; uses crt; var smb: array of char; Smb: integer; i: integer; const n=25; begin clrscr; writeln('CODE ASCII |...

несоответствия в условиях - Delphi
Вообщем такая проблема что неправильно выполняется условие. Нужно подсчитать сумму элементов(с 1 по 10) из 2-й строки StringGrid1'а. Далее...

цвет заливки несоответствия - PHP
есть фотоальбом у фоток есть превью превью сделаные скритом где несоответствие заливается белым вот в чем вопрос у меня задний фон...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru