C语言用for循环对数组元素输入输出

DreamKoBoy 2020-09-16 09:51:30
学习数组时写了个用for循环输入输出数组元素的程序,想法是输入10个数后输出10个数,但是运行时必须输入11个数才会有输出,找不到哪里出了问题。以下是代码和运行结果的图示,还望大家解答一下,谢谢!
...全文
4635 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
DreamKoBoy 2020-09-17
  • 打赏
  • 举报
回复
引用 3 楼 自信男孩的回复:
把 scanf中""双引号里的空格去掉再试试应该就可以了。
问题已解决,谢谢你!
DreamKoBoy 2020-09-17
  • 打赏
  • 举报
回复
引用 2 楼 lin5161678的回复:
scanf 格式控制字符串%d后面的 空格 删掉
问题已解决,谢谢你!
DreamKoBoy 2020-09-17
  • 打赏
  • 举报
回复
引用 1 楼 5250的回复:
把scanf中%d后面的空格删了就行了
scanf会默认过滤掉空格、回车、制表符,由于scanf()默认把空白作为分割多个输入的标志,所以当你输入空白的时候,scanf()会认为你将要进行下一个输入,从而停下来等你。但是,当参数字符串的处理已经来到结尾或者输入流来到末尾的时候,scanf()不会认为你将继续进行输入。所以参数为"%d"的时候直接输入然后按回车就结束了。但当参数为"%d "的时候,此时没有处理到结尾,scanf()会认为你要继续进行输入。然而你输入了空格或者回车,scanf()认为他们是分隔符,于是过滤掉了。换句话来说,scanf()依旧在等待你的输入,只有当你输入不是空白的字符以后,scanf()才会用它与参数字符串里面的空格比较。这就是为什么你需要再输入一个数字的原因了
懂了懂了,谢谢解答!!
自信男孩 2020-09-17
  • 打赏
  • 举报
回复
把 scanf中""双引号里的空格去掉再试试应该就可以了。
lin5161678 2020-09-17
  • 打赏
  • 举报
回复
scanf 格式控制字符串%d后面的 空格 删掉
5250 2020-09-17
  • 打赏
  • 举报
回复
把scanf中%d后面的空格删了就行了
scanf会默认过滤掉空格、回车、制表符,由于scanf()默认把空白作为分割多个输入的标志,所以当你输入空白的时候,scanf()会认为你将要进行下一个输入,从而停下来等你。但是,当参数字符串的处理已经来到结尾或者输入流来到末尾的时候,scanf()不会认为你将继续进行输入。所以参数为"%d"的时候直接输入然后按回车就结束了。但当参数为"%d "的时候,此时没有处理到结尾,scanf()会认为你要继续进行输入。然而你输入了空格或者回车,scanf()认为他们是分隔符,于是过滤掉了。换句话来说,scanf()依旧在等待你的输入,只有当你输入不是空白的字符以后,scanf()才会用它与参数字符串里面的空格比较。这就是为什么你需要再输入一个数字的原因了

70,020

社区成员

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

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