打印2D阵列?

时间:2015-08-05 20:32:38

标签: c++ arrays printing

我遇到打印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;
}

3 个答案:

答案 0 :(得分:4)

3个问题:

  1. 数组索引从0开始。
  2. NumColumnNumRow未初始化。
  3. 错误的语法[y,j],请使用[i][j]
  4. 试试这样:

    ...
    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++)
    {               ^^^^
        //...