Заполнение матрицы по алгоритму - C (СИ)

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

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

Не выходить заполнить матрицу вот таким способом. Если можно, напишите код либо обьясните алгоритм, никак не получается.

Решение задачи: «Заполнение матрицы по алгоритму»

textual
Листинг программы
#include<stdio.h>
#define size 9
 
void main(void) {
int a[size][size];
int i, j, k, l;
 
k = 1;
l = 0;
for (i = 0; i < size; i++) {
    for (j = 0; j < size; j++) {
        if ((j < l) || (j >= size - l)) {
            a[j][i] = k++;
        } else {
            a[j][i] = 0;
        };
 
 
    };
    if (i < (int)(size / 2)) l++; else l--;
 
};
 
for (i = 0; i < size; i++) {
for (j = 0; j < size; j++) 
printf("%2i ", a[i][j]);
printf("\n");
};
 
 
}

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

В этом коде заполняется двумерный массив по определенному алгоритму.

  1. Создается двумерный массив a размером 9х9 и четыре переменные i, j, k, l, которые будут использоваться в циклах.
  2. Переменные k и l инициализируются единицей, а переменная i не инициализируется.
  3. Два вложенных цикла заполняют массив a. Первый цикл идет по строкам, а второй по столбцам.
  4. Условие if в вложенном цикле проверяет, что значение j меньше l или j больше размера массива a, уменьшенного на l, и присваивает элементу a[j][i] значение k, увеличивая k на единицу. В противном случае, присваивает значение 0.
  5. После завершения циклов, значение переменной i проверяется на меньше половины размера массива a, и если это так, то значение l увеличивается на единицу, иначе уменьшается на единицу.
  6. Два вложенных цикла выводят значения массива a на экран.
  7. В конце программы не указаны символы новой строки, поэтому можно предположить, что код продолжается и после вывода массива a.

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


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

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

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