【发布时间】:2013-11-23 18:34:27
【问题描述】:
我正在尝试获取一个随机数,如果它超过另一个数字,则让 while 结束:
int main() // random
{
int x= 50;
int i;
while (i>x){
srand(time(0));
int i = rand() %100;
printf("laenge %d", i);
}
}
while 开始良好并生成不同的数字(如 1.000 乘以 11、1.000 乘以 75...),但它永远不会结束。
我有两个问题,为什么没有结束? 为什么它会在控制台中输入相同随机数的 1.000 倍,然后是下一个随机数的 1.000 倍?
如果我添加:
int main() // random
{
int x= 50;
int i;
while (i>x){
srand(time(0));
int i = rand() %100;
printf("laenge %d", i);
sleep(1);
}
}
睡眠(1);整个代码不再起作用了。
【问题讨论】:
-
除了其他答案,你应该用一个值初始化
i。 -
+1 用于提供SSCCE。
-
Fabian,
int i = rand()%100正在遮蔽int i的外部声明。如果您将其替换为i = rand() % 100,您的第一个片段将正常工作。
标签: c random while-loop