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]);

}

問題は、プログラムを実行するときに、このように i が 0 (1 ではない) のときに 2 つの値を入力する必要があることです。

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

3 ではなく 4 つの値を入力しなければならないのはなぜですか? また、2 を入力する前に i is 1 という文が表示されないのはなぜですか?

4

1 に答える 1

1

変化する:

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

に:

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

この余分なスペースは、空白を食べているため、すべての問題の原因です。

于 2013-08-09T16:23:51.120 に答える