Идет переопределение в C++ - Вопросы по С+
  • Чаты 4chT.com в телеграмм
    Наши группы в телеграмм

Вопрос Идет переопределение в C++

Регистрация
19 Окт 2013
Сообщения
63
Репутация
0
Спасибо
0
Монет
0
Есть задание: с клавиатуры последовательно вводятся количество товара и его сорт (1 или 2). Ввод автоматически прекращается, как только будет введено нулевое количество товара. Определить товаров какого сорта было получено больше. kt - кол-во товара, ssrt1 и 2 это суммы количества товаров по сортам соответственно, выводят ошибки указанные на скрине, как решить проблему?

З. Ы. я студент первого курса и за мой недокод не бейте плз))
79815625_0b3af95a60e3037f3693b9f22412c9af.png
 
Регистрация
17 Июл 2013
Сообщения
67
Репутация
-3
Спасибо
1
Монет
0
Интересный способ создания переменных, объявил и в той же строчке присвоил значение, ну разумисты юные. Убрать: double kt, srt, ssrt1, ssrt2, ssrt1 = 0, ssrt2 = 0; Замутить: double kt, srt, ssrt1 = 0, ssrt2 = 0;
 
Регистрация
8 Фев 2013
Сообщения
90
Репутация
-1
Спасибо
0
Монет
0
А если использовать массив не потребуется ни if ни switch :) double s[2]={0,0}; while(1){ cin>>k; if(k==0)break; cin>>srt; s[srt-1]+=k; } cout<<(s[0]>s[1]?"1 sort":"2 sort");
 
Регистрация
12 Ноя 2012
Сообщения
89
Репутация
0
Спасибо
0
Монет
0
Вам уже ответили. Только обозначу что переопределение в данном случае это когда вы создаете две переменные с одним и тем же именем и компилятор не знает какой переменной отдать предпочтение! Можно писать так: double ssrt1 = 0; //и далее просто пользоваться этой переменной либо так: double ssrt1; ssrt1 = 0; // Переходить на следующую строку не обязательно, но точка с запятой, что бы обозначить конец операции, обязательна. Переход сделан только для наглядности. Обычно программисты и пишут код что-бы был нагляднее, потому что читать код приходится больше чем кодить.
 
Регистрация
27 Сен 2013
Сообщения
109
Репутация
0
Спасибо
0
Монет
0
Эмммм, я тоже не шарю, но что будет, если ssrt1=0 ssrt2=0 перенести на новую строку? У вас по моему дичь написана в 7 строчке . Вы сначала определили переменную, потом определили её же, только присвоив 0 . Тут два арианта могут быть . double kt, str,ssrt1,ssrt2; ssrt1=0; ssrt2=0; или double kt, str,ssrt1=0,ssrt2=0;
 
Регистрация
14 Фев 2013
Сообщения
85
Репутация
0
Спасибо
0
Монет
0
#include <iostream> using namespace std; int main() { setlocale(LC_CTYPE, "Russian"); auto q1 = 0U, q2 = 0U; while (true) { cout << "Количество: "; unsigned q; cin >> q; if (0 == q) break; cout << "Сорт: "; unsigned s; cin >> s; switch (s) { case 1: q1 += q; break; case 2: q2 += q; break; } } cout << "Товаров " << (q1 > q2 ? "I" : "II") << " сорта больше
"; system("pause"); }
 
Сверху Снизу