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; j++)      // < should be j++, not i++
        scanf("%d", &a[i][j]);
}
于 2013-05-17T12:59:28.517 回答
1

在您的代码中:

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

第二个i++应该是j++,否则程序将永远不会停止询问数字。

这个问题很简单,为什么不分享你所有的代码。我很确定只有语法错误。

于 2013-05-17T13:07:37.383 回答