Выполнить сортировку двумерного массива методом нахождения минимального элемента - C (СИ)
Формулировка задачи:
Добрый день! подскажите, пожалуйста, как выполнить сортировку двумерного массива методом нахождения минимального элемента?
Решение задачи: «Выполнить сортировку двумерного массива методом нахождения минимального элемента»
textual
Листинг программы
#include <stdio.h>
#define L 3 // line
#define C 3 // column
int main()
{
int A [L][С] = {0};
int B [С] = {0}; // clipboard
int i = 0, j = 0, n = 0, m = 0,
g = 0, exchange = 0;
for (i = 0; i <= L - 1; i++)
for (j = 0; j <= C - 1; j++)
scanf ("%2d", &A [i][j]);
g = 0;
while (g <= L - 1)
{
j = 0;
exchange = 0;
n = g;
B [j] = A [g][j];
for (i = g + 1; i <= L - 1; i++)
{
if (A [i][j] < B [j]) {
exchange = 1;
n = i;
for (j = 0; j <= C - 1; j++)
B [j] = A [i][j];
}
}
if (exchange)
{
for (j = 0; j <= C - 1; j++) {
A [n][j] = A [g][j];
A [g][j] = B [j];
}
}
g++;
}
for (i = 0; i <= L - 1; i++)
{
for (j = 0; j <= C - 1; j++)
printf ("%2d", A [i][j]);
printf ("\n");
}
return 0;
}
Объяснение кода листинга программы
- Включаем заголовочный файл
для использования функций ввода-вывода - Задаем размеры массива L=3 и С=3
- Объявляем двумерный массив A размером LxС и заполняем его значениями 0
- Объявляем одномерный массив B размером С и заполняем его значениями 0
- Объявляем переменные i, j, n, m, g, exchange и инициализируем их значениями 0
- Считываем значения массива A с помощью функции scanf
- Устанавливаем переменную g равной 0
- Запускаем цикл while, который выполняется до тех пор, пока g меньше или равно L-1
- Внутри цикла устанавливаем переменную j равной 0 и инициализируем переменную exchange значением 0
- Устанавливаем переменную n равной g
- Копируем минимальный элемент из массива A в массив B
- Используя вложенные циклы, находим минимальный элемент в текущей строке массива A и копируем его в массив B
- Если найден минимальный элемент, меняем значения элементов массива A, которые соответствуют текущей строке и столбцу, на значения из массива B
- Увеличиваем переменную g на 1
- По окончании цикла выводим значения массива A с помощью функции printf
- Возвращаем 0, чтобы указать, что программа успешно завершилась