Заполнить секторы матрицы, которые лежат влево и вправо от главной и побочной диагоналей - C (СИ) (74839)
Формулировка задачи:
Требуется помощь с задачей.
Заполнить секторы матрицы, которые лежат влево и вправо от главной и побочной диагоналей, ЛП, от левого угла вниз - вправо. Остаток матрицы заполнить нулями.
пример того что должно получиться:
0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 26 2 8 0 0 0 0 0 21 27 3 9 13 0 0 0 18 22 28 4 10 14 16 0 17 19 23 29 5 11 15 0 0 0 20 24 30 6 12 0 0 0 0 0 25 31 7 0 0 0 0 0 0 0 32 0 0 0 0 0 0 0 0 0
Решение найдено
#include <stdio.h> int main() { int a[100][100], n, t=1, i, j; printf("n= "); scanf("%d", &n); for(j=0; j<n; j++) for(i=0; i<n; i++) if((j<i && i<n/2) || (j<n-i-1 && i>=n/2) || (j>n-i-1 && i<n/2) || (j>i && i>=n/2)) a[i][j]=t++; else a[i][j]=0; for(i=0; i<n; i++) { for(j=0; j<n; j++) printf("%4d", a[i][j]); printf("\n"); } return 0; }
Решение задачи: «Заполнить секторы матрицы, которые лежат влево и вправо от главной и побочной диагоналей»
textual
Листинг программы
if ((i>j && i<n-1-j) || (j>n-1-i && j>i))
Объяснение кода листинга программы
В данном коде выполняется условие для заполнения элементов матрицы. Если условие выполняется, то происходит заполнение. Вот объяснение этого условия:
i>j
- это условие означает, что элемент матрицы, который мы хотим заполнить, находится левее, чем элемент, с которым мы его сравниваем.i<n-1-j
- это условие означает, что элемент матрицы, который мы хотим заполнить, находится правее, чем элемент, с которым мы его сравниваем.j>n-1-i
- это условие означает, что элемент матрицы, который мы хотим заполнить, находится ниже, чем элемент, с которым мы его сравниваем.j>i
- это условие означает, что элемент матрицы, который мы хотим заполнить, находится правее и ниже, чем элемент, с которым мы его сравниваем. Если все эти условия выполняются, то происходит заполнение элемента матрицы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д