scanf语句中%d后面多加一个空格,为什么数据需要多输入一个?

如题所述

因为你sacnf ("%d ", &a[i]);的%d后面有个空格,在你输入数字后,sacnf会跳过所有空格字符,包括回车符,直到遇到不是空格字符才退出,把%d后的空格删除就可以了

楼上的不要乱说,如果空格后面没有输入其他空格以外的字符,scanf会一直跳过空格然后等待输入,直到输入非空格字符后scanf才会返回
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-27
尽量不要加空格
如果加了 就要每个数据都要带一个空格
比如
你要输入1 2 3 4 5
不能输入5后直接回车,而是要输入5后,再加一个空格,然后再回车,这样就正常了。
当然,如果你多加一个数据也可以。不过真正有效的,并不是后面加的数据,而是分隔的空格。本回答被网友采纳
相似回答