Заполнить матрицу по образцу(2и+1х2и+1) - C (СИ)
Формулировка задачи:
Заполнить матрицу
Дано число N. Построить матрицу 2N+1x2N+1 так, чтобы в центре было число N, в элементах отстоящих на 1 от центра N-1, и т.д. _____________________________________________________________________На входе
Одна строка, содержащая целое число N, 0 < N ≤ 100._____________________________________________________________________
На выходе
Построенная матрица_____________________________________________________________________
Пример
На входе
2На выходе
0 0 0 0 0 0 1 1 1 0 0 1 2 1 0 0 1 1 1 0 0 0 0 0 0Решение задачи: «Заполнить матрицу по образцу(2и+1х2и+1)»
textual
Листинг программы
#include <stdio.h>
int main(void)
{
int i, j, k, N;
scanf_s("%i", &N);
int arr[100][100];
for (k = N; k >= 0; k--)
{
for (i = N - k; i <= N + k; i++)
{
for (j = N - k; j <= N + k; j++)
{
arr[i][j] = N - k;
}
}
}
for (i = 0; i < 2 * N + 1; i++)
{
for (j = 0; j < 2 * N + 1; j++)
{
printf("%i ", arr[i][j]);
}
printf("\n");
}
return 0;
}
Объяснение кода листинга программы
Вывод: В данном коде заполняется матрица по образцу (2и+1х2и+1) с помощью циклов. Сначала задаётся размер матрицы N с помощью функции scanf_s. Затем в первом цикле перебираются все строки матрицы от N до 0. Во втором цикле перебираются все столбцы матрицы от N до 0 для текущей строки. В третьем цикле матрица заполняется значениями N-k. После этого выводится на экран заполненная матрица с помощью двух вложенных циклов.