【发布时间】:2015-03-28 19:51:23
【问题描述】:
int n;
int a[maxsize];
int b[maxsize];
int c[maxsize];
int i;
printf("enter number of elements(disks)\n");
scanf("%d",&n);
printf("enter the elements in ascending order\n");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
这有时可以正常工作,但大多数时候这段代码会进入无限循环,循环中的“scanf”无限地接受值,我尝试使用函数 (fflush) 来清除缓冲区内容,但它仍然无法正常工作,请有人帮帮我!请解释原因!!
【问题讨论】:
-
“这有时很好,但大多数时候”嗯..这可能取决于你的电脑心情..对!
-
什么时候失败?当第一个输入不是十进制数时?您应该通过测试来自
scanf的返回值来检查。 -
@JerryGoyal 是输入可以实现这一点。
-
@iharob 我的意思是操作应该指定导致问题的“输入”
-
Mothi Mohammed 能否提供一个使代码进入无限循环的输入示例?
标签: c scanf infinite-loop