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;
}
Заранее спасибо за помощь
При выводе массива в консоль нужно, выводя ряд в массиве, между элементами вставлять не перевод строки, а пробел. А вот уже между рядами массива вставлять перевод строки ("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
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP