Как составить программу сортировки элементов матрицы 3-х видов в 1 код?. Язык Си
Добрый день у меня есть задача "составить программу сортировки элементов матрицы: а) элементы побочной диагонали отсортировать методом простого обмена; б) элементы главной диагонали отсортировать методом простой выборки; в) элементы первой строки отсортировать методом простой вставки." и я понимаю как это все работает по отдельности но вопрос в том как сделать все это в одном коде, у меня есть код в котором надо "Найти наименьшее из значений элементов, расположенных в заштрихованной части матрицы и поменять их местами." вот туда я никак не могу интегрировать все 3 задачи. Я не прошу составить код, я прошу подсказку про то как это сделать
Вот код:
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <time.h>
#define N 5
int main (void) {
int a[N][N], min, min_upper = INT_MAX, min_lower = INT_MAX, i, j, iu, ju, il, jl;
srand(time(NULL));
puts("\nSgenerrirovannaiya matrica imeet formu:\n");
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
a[i][j] = rand () % 100;
printf(" %2d", a[i][j]);
}
putchar('\n');
}
for (i = 0; i < N - i; i++) {
for (j = i; j < N - i; j++) {
if (a[i][j] < min_upper) {
min_upper = a[i][j];
iu = i, ju = j;
}
if (a[N - i - 1][j] < min_lower) {
min_lower = a[N - i - 1][j];
il = N - i - 1, jl = j;
}
}
}
i = a[iu][ju];
a[iu][ju] = a[il][jl];
a[il][jl] = i;
printf("\nmin_upper : %d\nmin_lower : %d\n", min_upper, min_lower);
puts("\nPomeneni mestami minimum iz verkhnei\nizhnei chasti treugolnika:\n");
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++)
printf(" %2d", a[i][j]);
putchar('\n');
}
min = min_upper < min_lower ? min_upper : min_lower;
printf("\nMinimalniy element v zashtrixovannoy oblasti\n\n min_element = %d\n", min);
}