Дана действительная матрица размером m * n; упорядочить(переставить)строки матрицы по неубыванию значений наименьших элементов строк матрицы. Разрешается использовать дополнительный массив. Задача № 3. Сортировка массива. (см. "Сборник задач для начинающего программиста") Алгоритм: #include <stdio.h> #include <conio.h> #include <stdlib.h> main() { // создаем массив размера 5*7 const int row = 5; const int col = 7; int a[row][col]; int i, j, v, u; clrscr(); printf("Сортировка массива по неубыванию значений наименьших злементов строк матрицы\n\n"); randomize(); // заполняем массив случайными числами for (i = 0; i < row; i++) for (j = 0; j < col; j++) a[i][j] = random(100); for (i = 0; i < row; i++) { // выводим массив на экран for (j = 0; j < col; j++) printf ("%4d", a[i][j]); printf("\n"); } printf("\nВывод наименьшего элемента строки\n"); int minrow [row]; // cоздаем массив minrow, для хранения минимальных элементов строк матрицы for (i = 0; i < row; i++) { // производим поиск минимальных элементов строк minrow[i] = a[i][0]; for (j = 0; j < col; j++) if (a[i][j] < minrow [i]) minrow[i] = a[i][j]; printf ("\n%4d", minrow[i]); // выводим минимальные элементы строк } for (i = 0; i < row; i++) { // проводим сортировку минимальных элемнтов по неубыванию for (v = i + 1; v < row; v++) { if (minrow[i] > minrow[v]) { u = minrow[i]; minrow[i] = minrow[v]; minrow[v] = u; for (j = 0; j < col; j++) { // сортируем строки матрицы u = a[i][j]; a[i][j] = a[v][j]; a[v][j] = u; } } } } printf ("\n\nВывод массива согласно условию\n\n"); for (i = 0; i < row; i++) { // выводим отсортированный массив на экран, согласно условию for (j = 0; j < col; j++) printf ("%4d", a[i][j]); printf("\n"); } getch(); return 0; }
Ключевые слова:
Массив, сортировка массива.
|
|||||||