Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 如果猜错了数字,如何停止这个无限循环?_Loops - Fatal编程技术网

Loops 如果猜错了数字,如何停止这个无限循环?

Loops 如果猜错了数字,如何停止这个无限循环?,loops,Loops,我是一个真正的编程初学者,所以请耐心听我解释,就像我是个白痴一样 如果我在stdin中输入两个数字,我的输出正好是我想要的,但是如果我输入了错误的数字,输出只是每个错误的表达式的无限循环 我怎样才能阻止这个循环 #include <stdio.h> int main(void) { int number; printf("Enter the best number in the world!\n"); scanf("%d", &number);

我是一个真正的编程初学者,所以请耐心听我解释,就像我是个白痴一样

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

我怎样才能阻止这个循环

#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;
}
#包括
内部主(空)
{
整数;
printf(“输入世界上最好的数字!\n”);
scanf(“%d”和编号);
而(1)
{
scanf(“%d”和编号);
如果(数字>22)
{
printf(“错了,太高了!再猜一次\n”);
}
如果(数字)
将永远运行。尝试

while (number != 22)
然后,您还可以将“正确”数字的答案移到循环之外,而不是使用中断

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

移动
,而(1)
在第一个
printf
上方,并删除第二个
scanf
。通过该更改,程序将循环,每次循环都会提示,直到输入正确答案,然后退出


另一个选择是移除第一个
scanf

,这样我就可以取出第一个
scanf
?另外,我在(数字!=22)时尝试了
但它仍在循环中。您希望它不断询问数字,直到您选择正确的数字吗?还是只询问一次?因此,在这种情况下,您只需要一次扫描,扫描应该在循环中。您可能还希望重复指令(即“重试”)或在循环中执行类似操作。
while (number != 22)