2

我写了一个简单的c代码如下

#include<stdio.h>
void main()
{
    int a[3];
    int i;
for(i=0;i<=2;i++)
{
    printf("i is %d\n",i);
    scanf("%d ",&a[i]);
}
for(i=0;i<=2;i++)
    printf("a[%d] is %d\n",i,a[i]);

}

问题是当我运行程序时,当我为 0(不是一个)时,我必须输入两个值,就像这样

i is 0
1
2
i is 1
3
i is 2
4

即使输出是正确的,即

a[0] is 1
a[1] is 2
a[2] is 3

为什么我必须输入 4 个值而不是 3,为什么语句 i is 1 不在我输入 2 之前出现?

4

1 回答 1

1

改变:

scanf("%d ",&a[i]);

至:

scanf("%d",&a[i]);

额外的空间是你所有问题的根源,因为它正在吃空格。

于 2013-08-09T16:23:51.120 回答