c语言需要的是 输入数字,但若输入字母的话就有错误。
c语言:需要的是输入数字,但若输入字母的话,结果就``````。用for循环时就会自动循环完了。这是溢出导致的还是其他原因啊???一般是程序。比如:inti;for(i=...
c语言:
需要的是 输入数字,但若输入字母的话,结果就``````。
用for循环时就会自动循环完了。
这是溢出导致的还是其他原因啊 ???
一般是程序。比如:int i;for(i=0;i<10;i++)scanf("%d",i);
输入数字则会循环10次。输入字母则后面循环不用输入,直接就循环完了。 展开
需要的是 输入数字,但若输入字母的话,结果就``````。
用for循环时就会自动循环完了。
这是溢出导致的还是其他原因啊 ???
一般是程序。比如:int i;for(i=0;i<10;i++)scanf("%d",i);
输入数字则会循环10次。输入字母则后面循环不用输入,直接就循环完了。 展开
3个回答
展开全部
的确是这样的,因为c的输入输出机制是输入输出流,scanf从io流中得到一个数据,从键盘得到的数据存在io流中,scanf如果发现io流空,才会从键盘读如数据到io流,再从io流中读入。
你那种情况是scanf读取失败,io流中的字符仍在io流中没被读走,下次scanf读取又失败,字符又留在io流中,于是就没用你从键盘输入啊。
这种情况有解决方法的,利用scanf的返回值,如果返回0的话就用getchar把io流清空,再继续读入。
你那种情况是scanf读取失败,io流中的字符仍在io流中没被读走,下次scanf读取又失败,字符又留在io流中,于是就没用你从键盘输入啊。
这种情况有解决方法的,利用scanf的返回值,如果返回0的话就用getchar把io流清空,再继续读入。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你把%d改为%c,那么输入数字和字母都可以循环,不过字母的ascii码比10大,把10改一下,比如100,你的i前加个&啊!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据类型不匹配,不能把字母赋给整型变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询