Помогите найти ошибку в коде (на количество раз)
Данный код должен выполнить (гг) операций. Я проверяю код и он выдаёт не больше 3х. Что не так я сделал?
#include <iostream>
int main() {
int GG;
std::cin >> GG;
int O = 0; // инициализируем счетчик цикла.
do {
O++;
sum += O;
int a, b;
char C;
std::cin >> a >> C >> b;
if (C == '+') std::cout << (a + b);
else if (C == '-') std::cout << (a - b);
else if (C == '*') std::cout << (a * b);
else if (C == '/') {
int R;
R = a % b;
if (R == 0) std::cout << (a / b);
else std::cout << "No\n";
}
}
while (O <= GG);
return 0;
}
Ответы (2 шт):
У вас не определен идентификатор sum, а Вы пытаетесь изменять его значение. Отсюда и ошибка. Необходимо в начале функции main дописать int sum = 0;. С учетом того, что исправлено условие выхода из цикла while(O <= GG) все заработает. Кроме того, если Вы хотите, чтобы выполнялось именно GG итераций, стоит написать условие выхода из цикла while(O < GG), т.к. в случае while(O <= GG) выполняется GG+1 итераций
Зачем вам неопределенный sum? Почему не while()? Для чего вам собственно нужен O,если вы нигде по сути с ним не взаимодействуете? Каков его практический смысл в вашем калькуляторе?
Почему бы не сделать, условно, вот так:
while(true){
//operations
if(C == 'q' || C == 'Q') break;
}