Выполнить сортировку двумерного массива методом нахождения минимального элемента - 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;
}

Объяснение кода листинга программы

  1. Включаем заголовочный файл для использования функций ввода-вывода
  2. Задаем размеры массива L=3 и С=3
  3. Объявляем двумерный массив A размером LxС и заполняем его значениями 0
  4. Объявляем одномерный массив B размером С и заполняем его значениями 0
  5. Объявляем переменные i, j, n, m, g, exchange и инициализируем их значениями 0
  6. Считываем значения массива A с помощью функции scanf
  7. Устанавливаем переменную g равной 0
  8. Запускаем цикл while, который выполняется до тех пор, пока g меньше или равно L-1
  9. Внутри цикла устанавливаем переменную j равной 0 и инициализируем переменную exchange значением 0
  10. Устанавливаем переменную n равной g
  11. Копируем минимальный элемент из массива A в массив B
  12. Используя вложенные циклы, находим минимальный элемент в текущей строке массива A и копируем его в массив B
  13. Если найден минимальный элемент, меняем значения элементов массива A, которые соответствуют текущей строке и столбцу, на значения из массива B
  14. Увеличиваем переменную g на 1
  15. По окончании цикла выводим значения массива A с помощью функции printf
  16. Возвращаем 0, чтобы указать, что программа успешно завершилась

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы