大家好我整个上午都试图这样做,但我似乎无法使它工作并且在循环上输出一个多维数组,让我用非多维的方法更好地解释:
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;
}
}
有人能帮助我吗?
答案 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]