求解
为什么可以一直空格输入数字,空格输入数字下去,还能求出来值?
正确地输入值应该是输入数字 然后空格还是回车?
正确的情况是输一个敲一个回车,你这种会把输入放在缓冲区,执行一次scanf,读一个值,所以其实就读了10个值
空格和回车都表示结束符。
对于整型数据的输入,也就是说"%d"类型的输入,scanf默认的分割符是所有的空白字符(空格,回车和指标符都行)。
可以看看这篇文章:
最多输10个数字啊。
如果你想追根溯源的话可以去研究scanf_s()的原型
scanf_s是对你输入的内容进行特定的格式转换,比如 %f 时把你输入的"45"转换成45(float)存在score[i]里
假设你用空格隔开两个“45”, scanf_s一个后,后面那一个“45”还是 “活着” 的,并没有被系统丢弃,所以再循环执行scanf_s时,就把后面的“45”转换成45存在score[i]里。