C++:循环输出多维数组

C++: Outputing Multidimensional Arrays on loop?

本文关键字:数组 输出 循环 C++      更新时间:2023-10-16

大家好,我整个早上都在尝试这样做,但我似乎无法让它工作,而是在循环中输出一个多维数组,让我用非多维数组更好地解释:

int j;
int line[4] = {1, 2, 3, 4,};

  for(j = 0; j < 4; j ++)
  {
      cout << line[j] << endl;
  }

这有效,但是当多维数组出现时,它会令人头疼:

int i, j;
int line[2][2];
line[0][0] = 99;
line[0][1] = 98;
line[1][0] = 97;
line[1][1] = 96;
i = 0;
j = 0;
for(j; j <= 1; j ++)
{
    for(i; i <= j; i ++)
    {
        cout << line[i][j] << endl;
    }
}

有人可以帮助我吗?

要很好地打印大小n x m的 2D 数组,请使用

for(int i = 0; i < n; ++i)
{
    for(int j = 0; j < m; ++j)
    {
        cout << a[i][j] << " ";
    }
    cout << endl;
}
for(int j = 0; j < 2; j++)
{
    for(int i = 0; i < 2; i++)
    {
        std::cout << line[j][i] << endl;
    }
}

这是怎么回事:

所以当你进入循环时j = 0.您进入内部循环i它将从 0 开始并转到 1j将保持与 0 相同,然后一旦i = 2(因为 2 不是 2 <,它将退出内部循环并继续第一个循环,j现在等于 1 , 它将重新进入内部循环,i将在0处再次启动并递增到 1 。然后一旦j = 2(再次,因为 2 不是 2 <(,它将退出第一个循环。

跟踪您按以下顺序获得:

[0][0]
[0][1]
[1][0]
[1][1]

为什么使用此代码:

for(j; j <= 1; j ++)
{
    for(i; i <= j; i ++)
    {
        cout << line[i][j] << endl;
    }
}

行不通。

所以你进入第一个循环,j = 0.您进入第二个循环,i = 0 .它通过内部循环一次,然后你打印line[0][0],然后i = 1第二次,是1 <= 0吗?不。因此,它退出内部循环并进入第一个循环。 j=1现在。进入第二个循环,您没有重新初始化i0 i因此仍然等于1。现在你已经打印了line[1][1],递增i,你会得到i = 2。2 <= 1吗?不。中止内部循环。 j等于2 2 <= 1没有中止循环。您设法打印了:

[0][0]
[1][1]

内部循环条件下的修正 ! 和索引变量的交换

for(j=0; j <= 1; j ++)
{
    for(i=0; i <= 1; i ++)
    {
        cout << line[j][i] << endl;
    }
}

编辑的代码^^