我遇到打印2D数组的问题。这是我的代码,任何帮助将不胜感激。
#include<iostream>
using namespace std;
int main()
{
int NumRow, NumColumn;
int anArray[2][2] = {{1,2},{3,4}};
for (int N_column = 1; N_column < NumColumn; N_column++)
{
for (int N_row = 1; N_row < NumRow; N_row++)
{
cout << anArray[N_row,N_column];
}
}
return 0;
}
答案 0 :(得分:4)
3个问题:
NumColumn
,NumRow
未初始化。[y,j]
,请使用[i][j]
试试这样:
...
int NumRow = 2, NumColumn = 2;
int anArray[2][2] = {{1,2},{3,4}};
for (int N_column = 0; N_column < NumColumn; N_column++)
{
for (int N_row = 0; N_row < NumRow; N_row++)
{
cout << anArray[N_row][N_column];
}
}
...
答案 1 :(得分:2)
你宣布
int NumRow, NumColumn;
但你从不为它们分配价值。使用
int NumRow = 2, NumColumn = 2;
代替。另外,C-arrays start at 0, not at 1,所以你也必须更新你的for循环:
for (int N_column = 0; ...
for (int N_row = 0; ...
最后,更改输出语句,因为需要到达多维数组in a different way:
cout << anArray[N_row][N_column];
答案 2 :(得分:1)
您的代码中存在一些问题:
第一名:您声明NumRow, NumColumn
但是在没有初始化它们之前使用它们会导致Undefined Behaviour。
解决方案:初始化它们
NumRow = 2;
NumColumn = 2;
2nd:以下行中的数组语法 -
cout << anArray[N_row,N_column];
应该是
cout << anArray[N_row][N_column];
第3代: C ++数组是zero indexed,因此您应该开始初始化循环控制变量,如下所示:
for (int N_column = 0; N_column < NumColumn; N_column++)
{ ^^^
for (int N_row = 0; N_row < NumRow; N_row++)
{ ^^^^
//...