TransWikia.com

Перестановка и вывод двумерного массива по заданной строке

Stack Overflow на русском Asked on February 16, 2021

Проблема в том что некоректно выводится двумерный массив, после перестановки столбцов этого массива так, чтобы в заданной строке сначала стояли отрицательные, потом нули, потом положительные числа. Я пробовал вставлять

cout<<endl;

Но он выводил постоянно в сплошной столбец

    Код программы
    //на вход подается статический массив и его размерность (x и y)
int Func(int arr[Str][Col], int x, int y)
{
   system("cls");
   int line; //отвечает за заданную строку 
   int calc;
   cout << "Введите номер линии для выполнения функции" << endl;
   cin >> line;

   for (int j = 0; j < y; j++)
   {
      if (arr[line][j] < 0)
      {
          int calc = j;
          for (int i = 0; i < x; i++)
          {
            printf("%5d n", arr[i][calc]); // вот проблема 
          }
        

      }
   }
   for (int j = 0; j < y; j++)
   {
     if (arr[line][j] > 0)
     {
        int calc = j;
        for (int i = 0; i < x; i++)
        {
            printf("%5d", arr[i][calc]); // вот проблема 
        }
        
     }
  }
  return 0;
}

Заранее спасибо за помощь

One Answer

При выводе массива в консоль нужно, выводя ряд в массиве, между элементами вставлять не перевод строки, а пробел. А вот уже между рядами массива вставлять перевод строки ("n").

Вот полный исправленный код:

    //на вход подается статический массив и его размерность (x и y)
int Func(int arr[Str][Col], int x, int y)
{
   system("cls");
   int line; //отвечает за заданную строку 
   int calc;
   cout << "Введите номер линии для выполнения функции" << endl;
   cin >> line;

   for (int j = 0; j < y; j++)
   {
      if (arr[line][j] < 0)
      {
          int calc = j;
          for (int i = 0; i < x; i++)
          {
            printf("%5d ", arr[i][calc]); // вот проблема 
          }
          printf("n");
      }
   }
   for (int j = 0; j < y; j++)
   {
     if (arr[line][j] > 0)
     {
        int calc = j;
        for (int i = 0; i < x; i++)
        {
            printf("%5d ", arr[i][calc]); // вот проблема 
        }
        printf("n");
     }
  }
  return 0;
}

Correct answer by Arty on February 16, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP