Вопрос задан 23.06.2023 в 05:10. Предмет Информатика. Спрашивает Михальченко Вика.

С++ Дана матрица размера M × N. Отсортировать матрицу по возрастанию. было 9 8 7 6 5 4 3 2 1

станет 1 2 3 4 5 6 7 8 9
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Филатова Арина.

#include <iostream>

using namespace std;

int main(){

   int n, m;

   cin >> n >> m;

   int a[n][m], res[n*m], cur = 0;

   for(int i = 0; i < n; i++){

       for(int j = 0; j < m; j++){

           cin >> a[i][j];

           res[cur] = a[i][j];

           cur++;

       }

   }

   for(int i = 0; i < n*m; i++){

       for(int j = i + 1; j < n*m; j++){

           if(res[i] > res[j])

               swap(res[i],res[j]);

       }

   }

   cur = 0;

   for(int i = 0; i < n; i++){

       for(int j = 0; j < m; j++){

           cout << res[cur] << " ";

           cur++;

       }

       cout << "\n";

   }

}

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для сортировки матрицы в C++, вы можете воспользоваться функцией std::sort из библиотеки STL. Однако сначала вам нужно будет преобразовать двумерный массив в одномерный вектор, чтобы упростить сортировку. Вот пример кода, который позволит вам сделать это:

cpp
#include <iostream> #include <vector> #include <algorithm> int main() { int M = 3; // Количество строк int N = 3; // Количество столбцов // Исходная матрица int matrix[M][N] = { {9, 8, 7}, {6, 5, 4}, {3, 2, 1} }; // Преобразование матрицы в одномерный вектор std::vector<int> flattenedMatrix; for (int i = 0; i < M; i++) { for (int j = 0; j < N; j++) { flattenedMatrix.push_back(matrix[i][j]); } } // Сортировка вектора std::sort(flattenedMatrix.begin(), flattenedMatrix.end()); // Восстановление отсортированной матрицы for (int i = 0; i < M; i++) { for (int j = 0; j < N; j++) { matrix[i][j] = flattenedMatrix[i * N + j]; } } // Вывод отсортированной матрицы for (int i = 0; i < M; i++) { for (int j = 0; j < N; j++) { std::cout << matrix[i][j] << " "; } std::cout << std::endl; } return 0; }

Этот код сначала преобразует исходную матрицу в одномерный вектор, затем сортирует этот вектор, а затем восстанавливает отсортированную матрицу и выводит её.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос