基础C语言

STAYLLLYYYY 2019-05-18 05:15:18
求求大神们帮帮小弟 问题就是:我在输入的时候一定要输入多一个字符或者数字之类的(如图三“8”),程序才能运行,调试过程也没发现不对,有大神能解释一下吗?
...全文
35 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
STAYLLLYYYY 2019-05-19
  • 打赏
  • 举报
回复
感谢🙏,问题解决了,谢谢大佬
CaptainXue 2019-05-18
  • 打赏
  • 举报
回复
你这个问题在于你输入数组a[n]的scanf中你的%d后面有一个空格,这个空格在这里的含义是吸收空格,制表符,回车符的,例如你输入1加一个空格,此时1后面的空格就被吸收了,而scanf是以空格,制表符,回车为结束符来判定数据是否读取完成的,既然空格被吸收了,它就一直等待你输入数据。你输入7之后,虽然有回车,但是它被你scanf里面的空格格式吸收掉了,就会等待你输入下个数,当你输入8之后,回车,这个回车符就不会被吸收,此时scanf就判定数据读取完成。 我认为你之所以这么写是因为你看到程序的输入样例中每个数据之间有空格,所以你输入的时候就加了空格,如果是这样的话,你可以用scanf_s来输入。这样的话就不会出现这个问题了。 这个是很多学者会遇到的问题,之前也给另外的学者解决了这个问题

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧