Заполнение матрицы по спирали - разобрать код - C (СИ)
Формулировка задачи:
Доброго времени суток. У меня есть рабочий код для этой задачи, но я не понимаю принцип его работы. Кто-то может подробно, пошагово объяснить работу кода. В каком порядке заполняются числа и т.д. Спасибо.
#include <stdio.h> void main(){ const int M = 4; int i, j, N, D = M; int mas[M][M]; for (N = 0; N < M; N++, D--){ for (j = N, i = N; j < D; j++) scanf_s("%d", &mas[i][j]); for (i = i + 1; i < D; i++) scanf_s("%d", &mas[i][j - 1]); for (j = D - 2, i = D - 1; N <= j; j--) scanf_s("%d", &mas[i][j]); for (i = i - 1; N < i; i--) scanf_s("%d", &mas[i][j + 1]); } for (i = 0; i < M; i++){ for (j = 0; j < M; j++) printf("\t%d", mas[i][j]); printf("\n"); } }
Решение задачи: «Заполнение матрицы по спирали - разобрать код»
textual
Листинг программы
//... for (j = N, i = N; j < D; j++) printf("1st %d %d\n", i, j); //scanf_s("%d", &mas[i][j]); for (i = i + 1; i < D; i++) printf("2nd %d %d\n", i, j-1); //scanf_s("%d", &mas[i][j - 1]); for (j = D - 2, i = D - 1; N <= j; j--) printf("3rd %d %d\n", i, j); //scanf_s("%d", &mas[i][j]); for (i = i - 1; N < i; i--) printf("4th %d %d\n", i, j+1); //scanf_s("%d", &mas[i][j + 1]); //...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д