Печать в виде 1-мерного массива, а не 2-мерного массива - PullRequest
0 голосов
/ 05 октября 2011

Может кто-нибудь сказать мне, почему это печать как 1-й массив, а не 2-й?Неважно, я идиот.

    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 голосов
/ 05 октября 2011

Полагаю, вы хотите печатать endl после каждой строки, которая будет после цикла colls, т.е. после каждой итерации цикла rows.

0 голосов
/ 05 октября 2011

Во-первых, размеры вашего массива должны быть "const". Во-вторых, вам нужна конечная линия в конце внутреннего цикла.

0 голосов
/ 05 октября 2011

Поскольку вы не печатаете новую строку после каждой строки:

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;
}
0 голосов
/ 05 октября 2011

Поскольку вы не печатаете новую строку после печати всех элементов строки.

Попробуйте:

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 вместо cout и std::endl вместо endl.

Аналогично, используйте std:: со всеми другими именами из пространства имен std.

0 голосов
/ 05 октября 2011

Попробуйте

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

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

      } 
      cout << endl;

  } 
...