Сортировка матрицы с условием, что 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 самое большое число»
textual
Листинг программы
fprintf(stdout, "f.var1 = %i, f.var2 = %i\n", f.get(&f, 0), f.get(&f, 1));