Сортировка матрицы с условием, что 0 самое большое число - C (СИ)

Формулировка задачи:

Дана матрица размером 7*7 Требуется отсортировать ее от меньшего к большему при условии, что 0 самое большое число. Мне и это удалось самому сделать. Спросите, моя программа подтвердит. P.S. Трудно поверить, ведь я только начал изучать Си 
#include <stdio.h>
#include <stdlib.h>
#include  <time.h>
 
int i, j, k, l, b, a[7][7];
int main()
{
    srand(time(NULL));
    for (i = 0; i < 7; i++ ){
        for (j = 0; j < 7; j++ ){
            a[i][j] = rand()% 16 - 8;
            printf("%4d", a[i][j]);}
            printf("\n");}
 
    for (k = 0; k < 49; k++ )
    {
        for (i = 0; i < 6; i++ )
        {
            for (j = 0; j < 6; j++ ){
                b = (a[i][j] > a[i][j+1]) && (a[i][j+1] != 0) || (a[i][j] == 0);
                if(b) {l = a[i][j]; a[i][j] = a[i][j+1]; a[i][j+1] = l;}
                b = a[i][6] > a[i+1][0] &&  a[i+1][0] != 0 || a[i][6] == 0;
                if(b) { l = a[i][6]; a[i][6] = a[i+1][0]; a[i+1][0] = l;}}
        }
        for (j = 0; j < 6; j++ ){
                b = a[6][j] > a[6][j+1] &&  a[6][j+1] != 0 || a[6][j] == 0;
                if(b){l = a[6][j]; a[6][j] = a[6][j+1]; a[6][j+1] = l;}}
    }
    printf("\n");
    for (i = 0; i < 7; i++ ){
        for (j = 0; j < 7; j++ )
            printf("%4d", a[i][j]);
            printf("\n");}
    _getch();
    return 0;
}

Код к задаче: «Сортировка матрицы с условием, что 0 самое большое число - C (СИ)»

textual
fprintf(stdout, "f.var1 = %i, f.var2 = %i\n", f.get(&f, 0), f.get(&f, 1));

9   голосов, оценка 4.444 из 5


СОХРАНИТЬ ССЫЛКУ