【发布时间】:2013-02-13 12:31:46
【问题描述】:
所以我的问题如下。
int n=0;
while(n<=0)
scanf("%d",&n);
这段代码进入了一个无限循环,我不知道为什么。当用户输入一个大于 0 的数字时,循环应该停止。
谢谢:)
【问题讨论】:
-
代码可能永远不会进入循环 - 因为
n未初始化。你怎么知道它在循环?您是否输入了一个数字并按了 ENTER? -
我刚刚编译了这个,当我输入值 1 并回车时,它退出循环。我认为您的问题出在程序的其他地方。您可以尝试将
n设为volatile int,以确保您没有遇到优化问题。 -
我非常非常怀疑这个问题是由优化器引起的,
volatile不会修复它。 -
好吧,我不知道什么是 volatile int,但我已经创建了一个新文件,只有这段代码可以单独尝试,仍然是同样的问题。
标签: c while-loop infinite-loop