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

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

Ответ:
#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;
}
Объяснение:



Для упорядочивания строк матрицы по возрастанию их первых элементов, вам потребуется выделить память динамически и использовать функции сортировки. Вот пример решения задачи на 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
и, наконец, выводит отсортированную матрицу на экран.


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







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili