Упорядочить строки матрицы по убыванию максимальных элементов. c++
Через векторы преподаватель не принял, сказал сделать через пузырьковый метод. Надо отсортировать массив так, чтобы выводилось:
исх.масс:
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
отс. масс:
| 7 | 8 | 9 |
| 4 | 5 | 6 |
| 1 | 2 | 3 |
На данный момент код сортирует элементы в строке, не знаю что надо поменять.
#include <iomanip>
#include <cmath>
#include <vector>
#include <algorithm>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
setlocale(LC_ALL, "RU");
int N, M, b[10], r, j, i, t;
cout << "n= ";
cin >> N;
cout << "m= ";
cin >> M;
int** matrix = new int* [N];
for (int i = 0; i < N; ++i)
matrix[i] = new int[M];
for (i = 0; i < N; i++) {
for (j = 0; j < M; j++)
{
cout << "Введите M[" << i << "][" << j << "]: ";
cin >> matrix[i][j];
}
}
cout << "Исходная матрица:" << endl;
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++)
{
cout.width(5);
cout << matrix[i][j] << ' ';
}
cout << endl;
}
for (j = 0; j < N; j++)
{
b[j] = matrix[0][j];
for (i = 1; i < N; i++)
if (matrix[i][j] < b[j])
b[j] = matrix[i][j];
}
for (j = 0; j < M - 1; j++)
for (i = j + 1; i < N; i++)
if (b[j] < b[i])
{
t = b[j];
b[j] = b[i];
b[i] = t;
for (r = 0; r < N; r++)
{
t = matrix[r][j];
matrix[r][j] = matrix[r][i];
matrix[r][i] = t;
}
}
cout << endl;
cout << "Матрица после сортировки строк:" << endl;
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
cout.width(5);
cout << matrix[i][j] << ' ';
}
cout << endl;
}
return 0;
} ```