C++:循环输出多维数组
C++: Outputing Multidimensional Arrays on loop?
大家好,我整个早上都在尝试这样做,但我似乎无法让它工作,而是在循环中输出一个多维数组,让我用非多维数组更好地解释:
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
开始并转到 1
但j
将保持与 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
现在。进入第二个循环,您没有重新初始化i
以0
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;
}
}
编辑的代码^^
相关文章:
- 将值从二维数组输出到文本文件
- 为什么我的数组输出一个不在其中的元素
- 长度为 20 的 Cout'ing 数组输出 23 个字符
- 将矢量数组输出到 tex 文件中,错误
- 来自不同位置的数组输出的执行时间
- 数组输出中缺少字符
- 字符数组输出 - C++
- C 合并的数组输出错误
- 制作垫子类型对象的数组.输出窗口显示同一帧
- C++数组输出地址
- 字符数组输出正确,但实际上没有存储正确的值
- 字符串数组输出
- 为什么在将字符数组输出到控制台时会得到垃圾值
- 字符数组输出额外的字符
- 从字符数组输出到控制台
- 为什么计数从字符数组输出错误的字符
- 动态初始化的 2D 数组输出错误
- C++指针和2d数组输出
- c++中奇怪的char数组输出
- 类函数中的c++字符数组输出