如果错误的数字被猜到,我如何停止这个无限循环?

时间:2017-07-23 23:31:11

标签: loops

我是一个真正真正的初学者,所以请耐心地向我解释,就像我是一个白痴。

如果我在stdin中输入几个数字,我的输出正是我想要的,但如果输入错误的数字,则输出只是每个wrong表达式的无限循环。

如何停止此循环?

#include <stdio.h>

int main(void) 
{
    int number;

    printf("Enter the best number in the world!\n");
    scanf("%d", &number);

    while (1)
    {
        scanf("%d", &number);

        if(number > 22)
        {
            printf("WRONG, too high! Guess again\n");

        }

        if(number <22)
        {
            printf("WRONG, too low! Guess again\n");

        }
        if(number == 22)
        {
            printf("Clever girl <now imagine that scene from Jurrassic Park>\n");
            break;
        }

    }
return 0;
}

2 个答案:

答案 0 :(得分:0)

while(1)

将永远奔跑。尝试

while (number != 22)

然后,您也可以移动答案以正确显示&#34;循环外的数字,而不是休息。

我同意其他答案,只需要一个scanf,并根据你所描述的预期输出(我不确定我完全理解),它应该在循环内。

答案 1 :(得分:0)

将您的while(1)移到第一个printf之上,然后删除第二个scanf。通过该更改,您的程序将循环,提示每个循环,直到输入正确的答案,然后它将退出。

另一种选择是删除第一个scanf