У меня есть быстрый вопрос о сбое в этой кодировке.
Когда я запустил эту программу, и она вошла в этот цикл (введя 1 в качестве числа), все прошло гладко, за исключением того, что хотя я и вошел ++generalcounter1;
в теле цикла, кажется, что он не добавляется к этой переменной каждый раз, когда цикл воспроизводится. Он никогда не запускает сообщение, которое предполагается запустить, когда переменная == 10.
Пожалуйста, помогите мне, я очень расстроен! Ваш совет очень ценится!
Извините, если это было неясно, я новичок в этом сайте, а также программирование.
while (number == 1){
int addend1;
int addend2;
int sum;
int answer1;
int generalcounter1 = 0;
int reply1;
++generalcounter1;
addend1 = 1 + rand() % 50;
addend2 = 1 + rand() % 50;
sum = (addend1 + addend2);
cout << "\nWhat is " << addend1 << " plus " << addend2 << "? ";
cin >> answer1;
if (answer1 == sum){
reply1 = winstatement();
}
else{
reply1 = losestatement();
}
if (generalcounter1 == 10){
if (rightanswers >= 8){
cout << "\nCongratulations, you are ready to go to the next level!\n" << endl;
}
else{
cout << "\nPlease ask your teacher for extra help.\n" << endl;
}
}
}
Вы объявляете новый generalcounter1
каждая итерация цикла, увеличивая его и уничтожая в конце итерации. Переместите объявление за пределы цикла, чтобы каждый раз увеличивать только одно, а не новое каждый раз, когда оно просто уничтожается до того, как его увеличивают вдвое.
int generalcounter1 = 0;
while (number == 1) {
//loop body
}
Других решений пока нет …