for循环里的BUG

来源:百度知道 编辑:UC知道 时间:2024/05/25 05:27:02
以下这段代码是我程序里的一个检查输入是否为数字的代码:
for(i=0;i<20,check[i]!='\0';i++)
if(check[i]<48||check[i]>57)
{
printf("输入有误,请检查后重新输入:");
scanf("%s",check);
i=0;
}
可是运行结果为,第一次输入字符并提示出错后,再次输入字符就不提示了,可是我没有发现有逻辑错误啊,有没有可能是编译器的问题呢?希望哪位大哥可以帮帮忙,非常感谢!
tgw5667.首先谢谢你,不过你的答案我刚测试了一下,还是没有完成.我现在非常怀疑是编译器出问题了~~~还有哪位有高见啊??等了很久了

for(i=0;i<20 && check[i]!='\0';i++)
if(check[i]<48||check[i]>57)
{
printf("输入有误,请检查后重新输入:");
scanf("%s",check);
i=0;
}
---------------------------
我刚才试了一下,能通过的!
注意:check的字符串一定要有20个,一个也不能少!少了就出错!