#c #while-loop
Вопрос:
#include <iostream>
using namespace std;
bool play_game(int n) {
int guess;
bool noguesses = false;
int numofguesses = 0;
cout << "Welcome to my number guessing gamen";
while (n!=guess amp;amp; !noguesses)
{
if (numofguesses < 6)
{
cout << "n";
cout << "Enter your guess: ";
cin >> guess;
cout << "n";
cout << "You entered: " << guess;
numofguesses ;
return false;
}
else
{
oog = true;
}
}
if (noguesses) {
cout << "I'm sorry. You didn't find my number.n";
cout << "It was" << n << endl;
}
else
{
cout << "n";
cout << "You found it in" << numofguesses << "guess(es)n";
return true;
}
}
int main()
{
int secretnum = 5;
play_game(secretnum);
}
Когда я запускаю это, программа останавливается после cout << "You entered: " << guess;
. Я хочу, чтобы он продолжал зацикливаться до тех пор, пока количество догадок не достигнет 6 или пока пользователь не введет правильный ответ.
Комментарии:
1. Функция завершается, потому что вы возвращаетесь из нее.
return false;
Если ты не хочешь, чтобы это закончилось, не возвращайся.2. Также
oog
не имеет ссылки.3. … и
guess
изначально неопределенна при первой оценкеn != guess
в состоянии цикла while и, следовательно, вызывает неопределенное поведение .
Ответ №1:
Удалять return false;
if (numofguesses < 6)
{
cout << "n";
cout << "Enter your guess: ";
cin >> guess;
cout << "n";
cout << "You entered: " << guess;
numofguesses ;
return false; //Remove this line
}