我写了一个简单的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个,为什么在我输入2之前语句i是1?
答案 0 :(得分:1)
变化:
scanf("%d ",&a[i]);
为:
scanf("%d",&a[i]);
额外的空间是你所有问题的根源,因为它正在吃空白。