0

配列 "a[3][3]" (3 x 3) を宣言しました。ユーザーは 9 個の整数を入力する必要があります。

私はこのコードを使用しています:

for (i = 0; i < 3; i++)
{
    for (j = 0; j < 3; i++)
        scanf("%d", &a[i][j]);
}

数字を挿入0 1 2 3 4 5 6 7 8して印刷しようとすると、次のように出力されます。0 0 0 1 0 0 2 0 0

何が問題ですか?

4

4 に答える 4

6

あなたの内側に

for (j = 0; j < 3; i++)

インクリメントは j++ である必要があります。

for (i = 0; i < 3; i++)
{
    for (j = 0; j < 3; /*HERE */j++)
        scanf("%d", &a[i][j]);
}

デバッガーを使用して段階的に進み、変数の値を確認して、将来そのようなケースを独自に調査してください。

于 2013-05-17T12:59:24.030 に答える
2

for (j = 0; j < 3; i++)する必要がありますfor (j = 0; j < 3; j++)

于 2013-05-17T12:59:38.553 に答える
1

あなたのコードで:

for (i = 0; i < 3; i++)
{
    for (j = 0; j < 3; i++)
        scanf("%d", &a[i][j]);
}

2 番目i++は である必要がありますj++。そうしないと、プログラムが番号を要求しなくなります。

この質問は非常に単純です。すべてのコードを共有してみませんか。構文エラーだけがあると確信しています。

于 2013-05-17T13:07:37.383 に答える
1

内側のループで間違った変数をインクリメントしています。

for (i = 0; i < 3; i++)
{
    for (j = 0; j < 3; j++)      // < should be j++, not i++
        scanf("%d", &a[i][j]);
}
于 2013-05-17T12:59:28.517 に答える