Помогите найти ошибку в коде (на количество раз)

Данный код должен выполнить (гг) операций. Я проверяю код и он выдаёт не больше 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 шт):

Автор решения: Booch

У вас не определен идентификатор sum, а Вы пытаетесь изменять его значение. Отсюда и ошибка. Необходимо в начале функции main дописать int sum = 0;. С учетом того, что исправлено условие выхода из цикла while(O <= GG) все заработает. Кроме того, если Вы хотите, чтобы выполнялось именно GG итераций, стоит написать условие выхода из цикла while(O < GG), т.к. в случае while(O <= GG) выполняется GG+1 итераций

→ Ссылка
Автор решения: Miracle-

Зачем вам неопределенный sum? Почему не while()? Для чего вам собственно нужен O,если вы нигде по сути с ним не взаимодействуете? Каков его практический смысл в вашем калькуляторе? Почему бы не сделать, условно, вот так:

while(true){
//operations
if(C == 'q' || C == 'Q') break;
}
→ Ссылка