Я создал двухмерный динамический массив, вывод таблицы, а вот как упорядочить строки по возрастанию их наибольших элементов.. .. вообще хз. Хелпаните плиз, кто шарит)
#include <iostream> #include <ctime> using namespace std; int main(){ srand(time(0)); int n, m; cin >> n >> m; int **arr = new int*[n]; for(int i = 0; i < n; i++){ arr[i] = new int[m]; for(int j = 0; j < m; j++){ arr[i][j] = rand() % 20; cout << arr[i][j] << " "; } cout << endl; } int *max = new int[n]; for(int i = 0; i < n; i++){ int max_i = arr[i][0]; for(int j = 0; j < m; j++){ if(max_i < arr[i][j]) max_i = arr[i][j]; } max[i] = max_i; } int *index = new int[n]; for(int i = 0; i < n; i++) index[i] = i; for(int i = 0; i < n; i++){ for(int j = 0; j < n - 1; j++){ if(max[j] > max[j + 1]){ int temp = max[j]; max[j] = max[j + 1]; max[j + 1] = temp; temp = index[j]; index[j] = index[j + 1]; index[j + 1] = temp; } } } for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ cout << arr[index[i]][j] << " "; } cout << endl; } return 0; } C #include <iostream> #include <ctime> using namespace std; int main(){ srand(time(0)); int n, m; cin >> n >> m; int **arr = new int*[n]; for(int i = 0; i < n; i++){ arr[i] = new int[m]; for(int j = 0; j < m; j++){ arr[i][j] = rand() % 20; cout << arr[i][j] << " "; } cout << endl; } int *max = new int[n]; for(int i = 0; i < n; i++){ int max_i = arr[i][0]; for(int j = 0; j < m; j++){ if(max_i < arr[i][j]) max_i = arr[i][j]; } max[i] = max_i; } int *index = new int[n]; for(int i = 0; i < n; i++) index[i] = i; for(int i = 0; i < n; i++){ for(int j = 0; j < n - 1; j++){ if(max[j] > max[j + 1]){ int temp = max[j]; max[j] = max[j + 1]; max[j + 1] = temp; temp = index[j]; index[j] = index[j + 1]; index[j + 1] = temp; } } } for(int i = 0; i < n; i++){ for(int j = 0; j < m; j++){ cout << arr[index[i]][j] << " "; } cout << endl; } return 0; } Пробуй