c语言需要的是 输入数字,但若输入字母的话就有错误。

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

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式