C/C++

Для задачи индивидуального варианта разработать блок-схему алгоритма и программу на С++.

Дана матрица размером NxM. Упорядочить ее строки по возрастанию их первых элементов.
Во-первых, ответы нейросети, присылаемые идиотами, надо сразу минусовать, а не выражать свои бурные восторги по поводу их получения.
Во-вторых, так как задача не вполне определённая, надо её с самого начала доопределять. Например, тип матрицы выбираем целочисленным, её размер небольшим (чтобы она легко выводилась на экран), элементы матрицы берём случайными из диапазона [a;b], границы которого вводятся с клавиатуры вместе с размером матрицы N×M, а тип сортировки выбираем пузырьковой. Саму матрицу реализуем как обычный динамический двумерный массив:
 #include  
#include
#include
#include

using namespace std;

void print_matrix(string s, int **X, int k, int l)
{
int i, j;
cout N >> M;
srand(time(NULL));
int **A = new int *[N];
for (i = 0; i < N; ++i)
{
A[i] = new int [M];
for (j = 0; j < M; ++j)
A[i][j] = a + rand() % (b + 1 - a);
}
print_matrix("Matrix before sorting:", A, N, M);
for (i = 1; i < N; ++i)
for (k = N - 1; k >= i; --k)
if (A[k - 1][0] > A[k][0])
for (j = 0; j < M; ++j)
swap(A[k - 1][j], A[k][j]);
print_matrix("Matrix after sorting:", A, N, M);
for (i = 0; i < N; ++i) delete [] A[i]; delete [] A;
cin.get(); cin.get(); return 0;
}
Проверяем и смотрим как это всё работает:Дело сделано - нормально всё работает!
Игорь Дрябков
Игорь Дрябков
66 572
Лучший ответ
Для решения этой задачи можно использовать следующий алгоритм:

Шаг 1: Создать матрицу размером NxM и заполнить ее случайными числами.
Шаг 2: Перебрать все строки матрицы и сохранить их порядок.
Шаг 3: Пройтись по всем строкам матрицы, начиная с первой, и сравнивать первый элемент каждой строки с первым элементом следующей строки. Если первый элемент текущей строки меньше, чем первый элемент следующей строки, поменять их местами.
Шаг 4: Повторять шаги 3 и 4 до тех пор, пока все строки не будут упорядочены по возрастанию.
Шаг 5: Вывести упорядоченную матрицу.

Вот пример программы на C++, реализующей этот алгоритм:
```
#include <iostream>
using namespace std;

int main() {
int n, m;
cout << "Введите размеры матрицы: ";
cin >> n >> m;

int matrix[n][m];

// Заполнение матрицы случайными числами
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
matrix[i][j] = rand() % 100;
}
}

// Сортировка строк по возрастанию первого элемента
bool swapped = false;
while (!swapped) {
swapped = false;
for (int i = 1; i < n - 1; i++) {
if (matrix[i - 1][0] > matrix[i][0]) {
int temp = matrix[i - 1];
matrix[i - 1] = matrix[i];
matrix[i] = temp;
swapped = true;
}
}
}

// Вывод упорядоченной матрицы
Олег Половников Друг я тебя обожаю)
Олег Половников Немного не подходит