【问题标题】:guessing game while loop not looping循环不循环的猜谜游戏
【发布时间】:2021-07-13 07:37:53
【问题描述】:
#include <iostream>
using namespace std;

bool play_game(int n) {
    int guess;
    bool noguesses = false;
    int numofguesses = 0;
    cout << "Welcome to my number guessing game\n";
    while (n!=guess && !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 &lt;&lt; "You entered: " &lt;&lt; guess; 之后停止。我希望它一直循环,直到猜测次数达到 6,或者直到用户输入正确答案。

【问题讨论】:

  • 函数结束,因为你从它返回。 return false;如果你不希望它结束​​就不要回来。
  • 另外oog没有参考。
  • ... 和 guess 最初在 while 循环条件下对 n != guess 的第一次评估是不确定的,因此会调用 未定义的行为

标签: c++ while-loop


【解决方案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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 2023-03-15
    • 2015-10-22
    相关资源
    最近更新 更多