c语言编程问题

新手上路,请多包涵

 数组的个数是4个,但是为什么要输入5个元素后才能运行呢?而且第5个元素随意输入一个元素都不影响运行结果。求大神解答啊

阅读 2.6k
2 个回答

感觉是scanf("%d\n",&a[i]),吃掉了一个\n,导致第一个键盘换行,并没有结束第一次scanf。写成scanf("%d",&a[i])试试呢

同一楼答案,问题确实是出在这个地方。
但我个人认为是,所有的换行都被scanf吃进去了(包括输完最后一个数之后敲的换行),但是没有间隔符告诉scanf停止输入啊。类似输入数组大小4的时候,要按一下回车,才能真正把4读进去。我认为应该在输入完最后一个数时连敲两下换行,前一个是读最后一个数连着要读进去的换行,后一个是告诉scanf输入结束。因为现在身边没有电脑,无法亲自实验。
不过,这种写法本身就很奇怪,完全可以不要那个'\n',即一楼的改法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进