Вывод двумерного массива при перестановке столбцов
Суть задания заключается в перестановке столбцов двумерного массива так, чтобы в заданной строке сначала стояли отрицательные, потом нули, потом положительные числа. Проблема заключается в выводе массива: сплошной столбец.Подскажите как исправить. Думал насчет вывода через printf, но не уверен. Код программы ниже
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++)
{
cout << setw(1) << arr[i][calc]<<endl;
}
cout << setw(10);
}
else
{
int calc = j;
for (int i = 0; i < x; i++)
{
cout << arr[i][calc] << endl;
}
cout << setw(10);
}
}
return 0;
}