Помогите, пожалуйста. Нужно написать программу в С++ Оголосіть двовимірний динамічний масив, у
якому 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
