Закономерность построения матрицы - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток. Есть такое задание: "Матрицу А(m,n) заполнить следующим образом. Для заданных k и l элементу akl присвоить значение 1; элементам, окаймляющим его (соседним с ним по вертикали, горизонтали и диагонали), - значение 2; элементам следующего окаймления – значение 3 и так далее до заполнения всей матрицы." Понятно как сделать по вертикали и горизонтали, но вот как дальше делать не могу понять. До меня не доходит закономерность заполнения.Представляю я себе примерно так один из вариантов:

Решение задачи: «Закономерность построения матрицы»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
#define N 5
 
int max(int a, int b) {
    return a > b ? a : b;
}
 
int main(void) {
    int k = 0, l = 1;
    int i, j;
    int a[N][N];
    for (i = 0; i < N; ++i) {
        for (j = 0; j < N; ++j) {
            a[i][j] = 1 + max(abs(i-k), abs(j-l));
            printf("%3d", a[i][j]);
        }
        printf("\n");
    }
    return 0;
}

Объяснение кода листинга программы

В этом коде используется язык программирования C. Он создает матрицу размером 5x5 и заполняет ее значениями, используя функцию max для поиска максимального значения между абсолютными значениями разности между индексами строки и столбца матрицы и двумя переменными k и l. Значения матрицы выводятся на экран через функцию printf.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.4 из 5
Похожие ответы