如图,我在写的时候没注意,多打了一个空格,导致我输入1 2 3 再按回车就没结果,而输入1 2 3 4就有结果了,这是为啥
当参数为"%d "的时候,此时没有处理到结尾,scanf()会认为你要继续进行输入。然而你输入了空格或者回车,scanf()认为他们是分隔符,于是“吃空白”吃掉了。换句话来说,scanf()依旧在等待你的输入,只有当你输入不是空白的字符以后,scanf()才会用它与参数字符串里面的空格比较。
#include<stdio.h>
int main()
{
int A[3] = { 0 };
for (int i = 0; i < 3; i++)
{
scanf("%d", &A[i]);
}
for (int j = 0; j < 3; j++)
{
printf("%d ", A[j]);
}
return 0;
}
因为要把空格填充上,scanf里的空格删掉就行了呀