Вывод матрицы на экран - C (СИ)
Формулировка задачи:
Требуется вывести на экран вот такую матрицу:
У меня получается ее выводить в таком виде при размерности 7х7 (программировал по диагоналям), но проблема в том, что при расширении она должна продолжаться, а у меня хоть 11х11, хоть 17х17 выводится именно такая, с этими же числами. Не получается от них не зависеть. Помогите, пожалуйста. Размерность должна быть нечетным числом от 3 до 23.
Решение задачи: «Вывод матрицы на экран»
textual
Листинг программы
#include <stdio.h> #define SIZE 7 int a[SIZE][SIZE]; int main() { int i, j, border; int x = SIZE / 2 + 1, y = SIZE / 2 + 1, curr = 1, dx = -1, dy = -1; int count = 0; while(curr - 1 < ((SIZE + 1) / 2) * ((SIZE + 1) / 2)) { border = ((SIZE + 1) / 2 - count - 1); while((dx < 0 && x > 0) || (dx > 0 && x < border)) a[y += dy][x += dx] = curr++; count += (dy < 0 ? 1 : 0); x += dx; y += dy; y += 1; dx = -dx; dy = -dy; } for(i = 0; i < SIZE; i++) { for(j = 0; j < SIZE; j++) printf("%3d", a[i][j]); printf("\n"); } return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д