оператор if — C ++ Do, пока условие цикла не работает

#include<iostream>
#include<ctime>
#include<cstdlib>

using namespace std;

int main(){
int gnumber, rnumber;
char choice;
int tries;

do {
cout << "Welcome to the Number Guessing Game!" << endl;
cout << endl; // breakline
cout << "How many tries: ";
cin >> tries;
cout << endl;

while (tries > 0){

srand(time(NULL));
rnumber = rand() % 99;

cout <<"Enter an integer greater than or equal to 0 and less than 100:";
cin >> gnumber;
system("cls");

if (tries != 1){
if (gnumber < 100 && gnumber >= 0){

if (gnumber == rnumber){
cout << "Congratulations! You've guessed the number." << endl;
tries--;
cout << "Remaining tries: " << tries << endl;
}

else if (gnumber > rnumber){
cout << "Your guess is higher than the number." << endl;
tries--;
cout << " Guess Again!" << endl;
cout << "Remaining tries: " << tries << endl;
}
else{
cout << "Your guess is lower than the number." << endl;
tries--;
cout << " Guess Again!" << endl;
cout << "Remaining tries: " << tries << endl;
}
}
else
cout << "Must greater or equal to 0 and lesser than 100!" << endl;
}
else
{
cout << "Game over!" <<" The number is: " << rnumber << endl;
cout << "Play Again? (Y/N)" << endl;
cin >> choice;
system("cls");

}

}
}while(choice == 'Y' || choice == 'y'); //

system("pause");
return 0;
}

ДАЖЕ, ЕСЛИ Я ВХОДУ НА ВЫБОР В КАЧЕСТВЕ «Н» ИЛИ «НЕТ», НЕ ОСТАНОВИТЕ ЦИКЛ.
И даже если я введу «Y» или «y», он не спросит, сколько попыток я хотел.
Вместо этого он просто спрашивает, какое целое число я бы хотел ввести.
Пожалуйста, попробуйте скопировать и скомпилировать код, чтобы понять, в чем проблема. Пожалуйста помоги.

П.С .: Кстати, это угадайка, которую я делаю …

-7

Решение

ошибка в вашем внутреннем цикле, если использование вводит значение, отличное от одного, иначе вы не уменьшите tries так что застревает

    else
{
cout << "Game over!" <<" The number is: " << rnumber << endl;
cout << "Play Again? (Y/N)" << endl;
cin >> choice;
system("cls");
tries--; // add this
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]