打印为1维数组而不是2维数组

时间:2011-10-05 07:35:22

标签: c++ matrix 2d

有谁能告诉我为什么这是一个1-d数组而不是2-d?没关系我是个白痴。

    int colls = 5;
  int rows  = 4;
  int array[rows][colls];

  for (int x=0; x < rows; x++)
  {
      for (int g=0; g < colls; g++)
      {

          array[x][g]=0;
          cout <<array[x][g];

      }

  }

5 个答案:

答案 0 :(得分:0)

尝试

for (int x=0; x < rows; x++) 
  { 
      for (int g=0; g < colls; g++) 
      { 

          array[x][g]=0; 
          cout <<array[x][g]; 

      } 
      cout << endl;

  } 

答案 1 :(得分:0)

因为您不在每行之后打印新行:

int colls = 5;
int rows  = 4;
int array[rows][colls];

for (int x=0; x < rows; x++)
{
    for (int g=0; g < colls; g++)
    {

        array[x][g]=0;
        cout <<array[x][g];

    }

    cout << endl;
}

答案 2 :(得分:0)

因为您在打印行的所有元素后没有打印换行符。

试试这个:

for (int x=0; x < rows; x++)
{
   for (int g=0; g < colls; g++)
   {
        array[x][g]=0;
        cout <<array[x][g];
    }
    cout << endl; //prints newline
}

顺便说一下,您似乎已在代码中编写了using namespace std。这会将名称空间std中的所有名称带到当前名称空间,这被认为是一种很好的做法。所以我建议你删除这一行(如果你写的那样):

using namespace std; //remove this line from your code.

然后使用std::cout代替coutstd::endl代替endl

同样,将std::与名称空间std中的所有其他名称一起使用。

答案 3 :(得分:0)

首先,您的数组维度必须为“const”。其次,你需要在内循环结束时使用结束语。

答案 4 :(得分:0)

我想您希望在每一行之后打印endl,这将在colls循环之后,即在rows循环的每次迭代之后。