Вопрос задан 25.06.2023 в 07:11. Предмет Информатика. Спрашивает Беседа Макс.

В работе память для массива должна выделяться динамически. На экран выводить исходные данные и

результат. Дана матрица размером NxM. Упорядочить ее строки по возрастанию их первых элементов. Задание на C++
0 0
Перейти к ответам

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

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

Ответ:

#include <iostream>

#include <ctime>

using namespace std;

int main()

{

srand(time(NULL));

int rows, cols;

cout << "Rows: ";

cin >> rows;

cout << "Cols: ";

cin >> cols;

cout << endl;

int** arr = new int* [rows];

for (int i = 0; i < rows; i++)

{

 arr[i] = new int[cols];

}

for (int i = 0; i < rows; i++)

{

 for (int j = 0; j < cols; j++)

 {

  arr[i][j] = rand() % 100;

  cout.width(3);

  cout << arr[i][j];

 }

 cout << endl;

}

for (int i = 0; i < rows; i++)

{

 for (int j = 0; j < cols; j++)

 {

  for (int k = cols - 1; k >= 0; k--)

  {

   if (arr[i][k - 1] > arr[i][k])

   {

    int temp = arr[i][k - 1];

    arr[i][k - 1] = arr[i][k];

    arr[i][k] = temp;

   }

  }

 }

}

cout << endl;

for (int i = 0; i < rows; i++)

{

 for (int j = 0; j < cols; j++)

 {

  cout.width(3);

  cout << arr[i][j];

 }

 cout << endl;

}

for (int i = 0; i < rows; i++)

{

 delete[] arr[i];

}

delete[] arr;

}

Объяснение:

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

Для упорядочивания строк матрицы по возрастанию их первых элементов, вам потребуется выделить память динамически и использовать функции сортировки. Вот пример решения задачи на C++:

cpp
#include <iostream> #include <vector> #include <algorithm> using namespace std; // Функция для сравнения строк матрицы bool compareRows(const vector<int>& row1, const vector<int>& row2) { return row1[0] < row2[0]; } int main() { int N, M; cout << "Введите размеры матрицы (N и M): "; cin >> N >> M; // Выделение памяти для матрицы vector<vector<int>> matrix(N, vector<int>(M)); // Ввод исходных данных cout << "Введите элементы матрицы:" << endl; for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { cin >> matrix[i][j]; } } // Сортировка строк матрицы по первым элементам sort(matrix.begin(), matrix.end(), compareRows); // Вывод результата cout << "Матрица после сортировки:" << endl; for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { cout << matrix[i][j] << " "; } cout << endl; } return 0; }

Этот код сначала выделяет память для матрицы размером NxM, затем заполняет матрицу данными, сортирует строки по первым элементам с помощью функции compareRows и, наконец, выводит отсортированную матрицу на экран.

0 0

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

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

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

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