C ++:在循环中输出多维数组?

时间:2011-12-18 17:32:49

标签: c++

大家好我整个上午都试图这样做,但我似乎无法使它工作并且在循环上输出一个多维数组,让我用非多维的方法更好地解释:

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;
    }
}

有人能帮助我吗?

3 个答案:

答案 0 :(得分:1)

要很好地打印尺寸为n x m的2D数组,请使用

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

答案 1 :(得分:0)

内环状态校正!和交换索引变量

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

编辑代码^^

答案 2 :(得分:0)

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

发生了什么:

所以当你进入循环j = 0时。您输入内部循环i将从0开始,然后转到1,但j将与0保持一致,然后i = 2 (因为2不是&lt; 2它将退出内循环并继续第一个循环而j现在将等于1,它将重新进入内循环并i将在0处重新开始并递增到1。然后一旦j = 2(再次,因为2不是&lt; 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现在。进入第二个循环,您没有将i重新初始化为0,因此i仍然等于1。现在您已打印line[1][1],增量i,然后获得i = 2。是2 <= 1?不。中止内循环。 j等于2 2 <= 1没有中止循环。你设法打印:

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