scanf()不带\n
T 2020/2/18 11:21:51
T 2020/2/18 11:21:56
执行出来
T 2020/2/18 11:22:24
T 2020/2/18 11:22:59
正常的话应该是
A 2020/2/18 11:23:07
scanf不要加换行啊
T 2020/2/18 11:23:35
那为什么它会重复执行呢??
A 2020/2/18 11:55:39
A 2020/2/18 11:55:45
不是重复执行哦
A 2020/2/18 11:55:46
A 2020/2/18 11:58:08
具体解释一下的话:
- 输入匹配 %d(一个数字) + \n(一段空白)
- 当前通过换行符提交的输入,输入区域实际上只有「1」,尚不满足scanf条件;
- 继续输入数字并且换行,输入区域存在「1\n2」,前一段满足scanf条件,输入结束;
- 继续执行循环,输入区域为「1\n2\n3」,前一段满足了scanf条件,匹配出数字「2」