Заполнение матрицы по определённому правилу - C (СИ)
Формулировка задачи:
Дано число n. Создайте массив размером n×n и заполните его по следующему правилу. На главной диагонали должны быть записаны числа 0. На двух диагоналях, прилегающих к главной, числа 1. На следующих двух диагоналях числа 2, и т.д.
Например n=5
0 1 2 3 4
1 0 1 2 3
2 1 0 1 2
3 2 1 0 1
4 3 2 1 0
Решение задачи: «Заполнение матрицы по определённому правилу»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <math.h> int n = 0; int a[100][100]; int i = 0; int j = 0; int main() { scanf("%d", &n); // обработка for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { a[i][j] = abs(i - j); } } for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { printf ("%d ",a[i][j]); } printf ("\n"); } return 0; }
Объяснение кода листинга программы
- Программа начинается с объявления переменных:
n
- количество заполняемых элементов матрицы (принимается с помощью функцииscanf
);a
- массив для заполнения (размерностью 100x100);i
иj
- индексы для обхода матрицы.
- Затем происходит заполнение матрицы по определённому правилу: в каждой ячейке
a[i][j]
хранится абсолютное значение разностиi
иj
. - Далее происходит вывод содержимого матрицы на экран. Для этого используется два вложенных цикла:
- Первый цикл перебирает все строки матрицы (от
i = 0
доi = n
). - Второй цикл перебирает все столбцы текущей строки (от
j = 0
доj = n
). В каждой итерации внутреннего цикла в текущую ячейку матрицыa[i][j]
записывается значениеabs(i - j)
.
- Первый цикл перебирает все строки матрицы (от
- После завершения внутренних циклов начинается вывод содержимого матрицы на экран. Для этого используется
printf
с форматированием%d
, которое выводит значениеa[i][j]
в формате десятичного числа, а также символ пробела после каждого значения. После каждой строки матрицы выводится символ перевода строки\n
. - В конце программы возвращается 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д