有关C语言?

dowhile处getchar()是将值赋给了n吗,否则为什么可以跳出循环?... do while处getchar()是将值赋给了n吗,否则为什么可以跳出循环? 展开
 我来答
chinaboyzyq
2019-10-08 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:3273万
展开全部
当你输入一个字符,如:'a'时,此时'a'并不是一个符合scanf格式化的一个输入,因为格式化要求输入一个整数,此时程序进入下一个循环,由于上次的'a'并不符合格式化输入,所以'a'被缓冲,放到下一个scanf输入中,此时'a'又不符合规定,就进入下一个循环,这样就形成了死循环。
getchar();是从标准输入设备读取一个字符,执行它后缓冲区内就没有东西了,scanf()就可以正常工作了。
getchar()的标准使用方法为:xx=getchar();读取的字符装入xx字符变量。

如果只用getchar();作用读取从键盘或键盘缓冲区输入的字符常量。
fastfs
2019-10-07 · TA获得超过1423个赞
知道大有可为答主
回答量:2659
采纳率:62%
帮助的人:805万
展开全部
那个getchar是为了去掉上面一行 scanf最后输的回车 不过有没有这行都不会影响程序的运行
只会对scanf %c产生影响
更多追问追答
追问
getchar是为了去掉上面一行 scanf最后输的回车 是什么意思
scanf最后不是回车,是变量n.
假如输入a会得到乱码888846345之类的,无法满足条件,一直在循环。且无法重新输入n值而加上getchar之后可以重新输入了,为什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f8435c6
2019-10-07 · 超过16用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:14.2万
展开全部
getchar不赋值给任何变量,前一行的scanf会把值赋给n
追问
假如输入a会得到乱码888846345之类的,无法满足条件,一直在循环。且无法重新输入n值而加上getchar之后可以重新输入了,为什么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bec66c6
2019-10-07 · TA获得超过1008个赞
知道小有建树答主
回答量:3930
采纳率:48%
帮助的人:319万
展开全部
就是从0开始的,v[0]是第一个元素,v[n-1]是第n个元素
追问
你是不是回答错题了😂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式