Загрузка...

Помогите доделать задачу)

Тема в разделе C/C++ создана пользователем GoblinHub 24 ноя 2022. 218 просмотров

  1. GoblinHub
    GoblinHub Автор темы 24 ноя 2022 Заблокирован(а) 0 17 мар 2022
    [IMG]
    Я создал двухмерный динамический массив, вывод таблицы, а вот как упорядочить строки по возрастанию их наибольших элементов.. .. вообще хз. Хелпаните плиз, кто шарит)
    [IMG]
     
  2. LVLUPer
    LVLUPer 24 ноя 2022 12 18 июн 2019
    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;
    }
    Пробуй
     
    1. Посмотреть предыдущие комментарии (4)
    2. LVLUPer
      GoblinHub, Тут также считается и второе максимальное число в строке. Если максимальные числа совпадают в строках, то мы смотрим по второму максимальному.
    3. LVLUPer
      GoblinHub, Если что тут первые четыре строки - это начальная матрица
    4. GoblinHub Автор темы
      LVLUPer, а понял,спасибо
Top
Загрузка...