#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define N 6
int main()
{
int a[N][N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35}; //Исходный массив
int i, j, k, //Переменные для прохода по массиву
ch, //Переменная для отслеживания цикла смены направления сортировки
sw, //Переменная-переключатель сортировки
buff, //Дополнительная переменная для смены значений
line; //Переменная для отслеживания линий
int b[N*N]; //Массив для преобразования матрицы в строку
k = 0;
/*Преобразовываем матрицу в строку*/
for (i = 0; i<N; i++)
{
for (j = 0; j<N; j++)
{
b[k] = a[i][j];
k++;
}
}
ch = 0;
sw = 0;
line = 0;
/*Производим сортировку*/
for (i = 0; i < N*N - 6; i++){
switch(sw){
case 0:
if (b[i] < b[i + 6]){
buff = b[i];
b[i] = b[i + 6];
b[i + 6] = buff;
}
break;
case 1:
if (b[i] > b[i + 6]){
buff = b[i];
b[i] = b[i + 6];
b[i + 6] = buff;
}
break;
default: break;
}
ch++;
if (ch == 2){
if (sw == 0){
sw = 1;
ch = 0;
}
else {
sw = 0;
ch = 0;
}
}
line++;
if (line == 6){
i += 6;
line = 0;
}
}
/*Преобразовываем строку в матрицу*/
i = 0;
j = 0;
for (k = 0; k < N*N; k++){
a[i][j] = b[k];
j++;
if (j == 6) {
i++;
j = 0;
}
}
getchar(); getchar();
return 0;
}