
Помогите, пожалуйста. Нужно написать программу в С++ Оголосіть двовимірний динамічний масив, у
якому n x m елементів. Заповніть його довільними числами. - Відсортуйте кожний рядок вихідного масиву за спаданням. - Відсортуйте кожен стовпець вихідного масиву за зростанням. Роздрукуйте його у вигляді таблиці двічі – до та після сортування. Оформіть генерацію, виведення масиву та сортування за допомогою функцій користувача.

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

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <algorithm>
void printArray(int** arr, int n, int m) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
std::cout << arr[i][j] << "\t";
}
std::cout << std::endl;
}
}
void sortRowsDescending(int** arr, int n, int m) {
for (int i = 0; i < n; i++) {
std::sort(arr[i], arr[i] + m, std::greater<int>());
}
}
void sortColumnsAscending(int** arr, int n, int m) {
for (int j = 0; j < m; j++) {
int* column = new int[n];
for (int i = 0; i < n; i++) {
column[i] = arr[i][j];
}
std::sort(column, column + n);
for (int i = 0; i < n; i++) {
arr[i][j] = column[i];
}
delete[] column;
}
}
int main() {
int n = 4;
int m = 5;
int** arr = new int*[n];
for (int i = 0; i < n; i++) {
arr[i] = new int[m];
}
srand(static_cast<unsigned int>(time(nullptr)));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
arr[i][j] = rand() % 100;
}
}
std::cout << "Масив до сортування:" << std::endl;
printArray(arr, n, m);
sortRowsDescending(arr, n, m);
sortColumnsAscending(arr, n, m);
std::cout << std::endl << "Масив після сортування:" << std::endl;
printArray(arr, n, m);
for (int i = 0; i < n; i++) {
delete[] arr[i];
}
delete[] arr;
return 0;
}



Звучити як цікава задача! Ось приклад програми на C++, яка розв'язує вашу задачу за допомогою функцій користувача:
cpp#include <iostream>
#include <vector>
#include <algorithm>
// Функція для генерації випадкових чисел у межах вказаного діапазону
int getRandomNumber(int min, int max) {
return min + rand() % (max - min + 1);
}
// Функція для виведення двовимірного масиву
void printMatrix(const std::vector<std::vector<int>>& matrix) {
for (const std::vector<int>& row : matrix) {
for (int num : row) {
std::cout << num << "\t";
}
std::cout << std::endl;
}
}
// Функція для сортування кожного рядка за спаданням
void sortRowsDescending(std::vector<std::vector<int>>& matrix) {
for (std::vector<int>& row : matrix) {
std::sort(row.rbegin(), row.rend());
}
}
// Функція для сортування кожного стовпця за зростанням
void sortColumnsAscending(std::vector<std::vector<int>>& matrix) {
int numRows = matrix.size();
int numCols = matrix[0].size();
for (int col = 0; col < numCols; col++) {
std::vector<int> column;
for (int row = 0; row < numRows; row++) {
column.push_back(matrix[row][col]);
}
std::sort(column.begin(), column.end());
for (int row = 0; row < numRows; row++) {
matrix[row][col] = column[row];
}
}
}
int main() {
int n, m;
std::cout << "Введіть кількість рядків: ";
std::cin >> n;
std::cout << "Введіть кількість стовпців: ";
std::cin >> m;
// Створення двовимірного динамічного масиву та заповнення випадковими числами
std::vector<std::vector<int>> matrix(n, std::vector<int>(m));
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
matrix[i][j] = getRandomNumber(1, 100);
}
}
std::cout << "Вихідний масив:" << std::endl;
printMatrix(matrix);
sortRowsDescending(matrix);
std::cout << "Масив після сортування кожного рядка за спаданням:" << std::endl;
printMatrix(matrix);
sortColumnsAscending(matrix);
std::cout << "Масив після сортування кожного стовпця за зростанням:" << std::endl;
printMatrix(matrix);
return 0;
}
У цій програмі ми спершу створюємо двовимірний динамічний масив розміром n x m і заповнюємо його випадковими числами. Потім ми викликаємо функції sortRowsDescending
та sortColumnsAscending
, щоб відсортувати рядки за спаданням та стовпці за зростанням відповідно. Нарешті, ми виводимо вихідний масив та масив після сортування.


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