C/C++
ПОМОГИТЕ СРОЧНО С С++
дана матрица n×n, содержащая целые числа. Отсортировать каждый столбец матрицы по возрастанию элементов методом выбора
С рандомной динамической матрицей:
#include
#include
#include
#include
using namespace std;
void print_matrix(string s, int **X, int size)
{
int i, j; cout n;
int **A = new int *[n];
srand(time(nullptr));
for (i = 0; i < n; i++)
{
A[i] = new int [n];
for (j = 0; j < n; j++)
A[i][j] = rand()%(b+1-a)+a;
}
print_matrix("Array before sorting:", A, n);
for (j = 0; j < n; ++j)
for (i = 0; i < n - 1; ++i)
{
k = i; m = A[i][j];
for (l = k + 1; l < n; l++)
if (A[l][j] < m) { m = A[l][j]; k = l; }
if (i - k) swap(A[k][j], A[i][j]);
}
print_matrix("Array after sorting:", A, n);
for (i = 0; i < n; i++) delete [] A[i]; delete [] A;
cin.get(); cin.get(); return 0;
}

Вот пример кода на C++, который сортирует каждый столбец матрицы по возрастанию элементов методом выбора:
```cpp
#include <iostream>
using namespace std;
const int MAX_N = 100;
int main() {
int n, a[MAX_N][MAX_N];
cin >> n;
// Ввод матрицы
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> a[i][j];
}
}
// Сортировка каждого столбца
for (int j = 0; j < n; j++) {
for (int i = 0; i < n - 1; i++) {
int min_idx = i;
for (int k = i + 1; k < n; k++) {
if (a[k][j] < a[min_idx][j]) {
min_idx = k;
}
}
if (min_idx != i) {
swap(a[i][j], a[min_idx][j]);
}
}
}
// Вывод отсортированной матрицы
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
В данном коде мы сначала вводим матрицу размера n×n, затем проходим циклом по всем столбцам матрицы и сортируем каждый столбец методом выбора. Для сортировки каждого столбца мы проходим циклом по всем строкам столбца и находим индекс минимального элемента. Затем, если минимальный элемент не находится на своем месте, мы меняем местами минимальный элемент и первый элемент в текущем столбце. После того, как мы отсортировали каждый столбец, мы выводим отсортированную матрицу на экран.
Надеюсь, этот код вам поможет!
```cpp
#include <iostream>
using namespace std;
const int MAX_N = 100;
int main() {
int n, a[MAX_N][MAX_N];
cin >> n;
// Ввод матрицы
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> a[i][j];
}
}
// Сортировка каждого столбца
for (int j = 0; j < n; j++) {
for (int i = 0; i < n - 1; i++) {
int min_idx = i;
for (int k = i + 1; k < n; k++) {
if (a[k][j] < a[min_idx][j]) {
min_idx = k;
}
}
if (min_idx != i) {
swap(a[i][j], a[min_idx][j]);
}
}
}
// Вывод отсортированной матрицы
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
В данном коде мы сначала вводим матрицу размера n×n, затем проходим циклом по всем столбцам матрицы и сортируем каждый столбец методом выбора. Для сортировки каждого столбца мы проходим циклом по всем строкам столбца и находим индекс минимального элемента. Затем, если минимальный элемент не находится на своем месте, мы меняем местами минимальный элемент и первый элемент в текущем столбце. После того, как мы отсортировали каждый столбец, мы выводим отсортированную матрицу на экран.
Надеюсь, этот код вам поможет!
это можно было и на Дельфи сделать
Похожие вопросы
- Помогите срочно двумерные массивы в с++
- C++,помогите срочно!!! Ни как не могу понять как решить данную задачу
- ПРОГРАММИРОВАНИЕ ПОМОГИТЕ СРОЧНО
- C++. ПОМОГИТЕ СРОЧНО!!!!!
- Срочно!!! Помогите пожалуйста написать код к задачке на с++! Заранее спасибо!
- С++. Срочно пожалуйста помогите
- СРОЧНО! Помогите с задачей.
- ПОМОГИТЕ ОЧЕНЬ СРОЧНО C++
- ПОМОГИТЕ ОЧЕНЬ СРОЧНО C++.
- Помогите пожалуйста написать программу на C++. Срочно нужно, пожалуйста.