Выполнение действия над указанными элементами матрицы - C (СИ)
Формулировка задачи:
Здравствуйте, подскажите пожалуйста, как сделать выполнение действия над элементами матрицами, указанными звездочками
---*---
--***--
-*****-
*******
-*****-
--***--
---*---
Решение задачи: «Выполнение действия над указанными элементами матрицы»
textual
Листинг программы
#include <stdio.h> #define N 7 typedef int Matrix[N][N]; //----------------------------------------------------------------------------- void print(Matrix mtx) { int i, j; for (i = 0; i < N; ++i) { for (j = 0; j < N; ++j) { printf("%2d", mtx[i][j]); } printf("\n"); } printf("\n"); } //----------------------------------------------------------------------------- void func(Matrix mtx) { int i, j, middle = N / 2; for (i = 0; i < N; ++i) { for (j = 0; j < N; ++j) { if (((i <= middle) && (middle - i <= j) && (j <= middle + i)) || ((middle < i) && (middle + i - N + 1 <= j) && (j <= middle - i + N - 1))) { mtx[i][j] = 0; } } } } //----------------------------------------------------------------------------- int main() { Matrix mtx = {{1, 2, 3, 4, 5, 6, 7}, {1, 2, 3, 4, 5, 6, 7}, {1, 2, 3, 4, 5, 6, 7}, {1, 2, 3, 4, 5, 6, 7}, {1, 2, 3, 4, 5, 6, 7}, {1, 2, 3, 4, 5, 6, 7}, {1, 2, 3, 4, 5, 6, 7}}; print(mtx); func(mtx); print(mtx); return 0; }
Объяснение кода листинга программы
В данном коде выполняется следующая последовательность действий:
- #include
— подключаем стандартную библиотеку для работы с консолью - #define N 7 — определяем размерность матрицы (7х7)
- typedef int Matrix[N][N]; — создаем тип данных для матрицы, чтобы не писать двойные индексы
- void print(Matrix mtx) { — функция для вывода элементов матрицы на экран
- int i, j; — объявляем переменные для циклов
- for (i = 0; i < N; ++i) { — начинаем цикл по строкам матрицы
- for (j = 0; j < N; ++j) { — начинаем цикл по столбцам матрицы
- printf(
%2d
, mtx[i][j]); — выводим значение элемента на экран - printf(
\n
); — переходим на новую строку - } — завершаем цикл по столбцам
- printf(
\n
); — выводим разделительный символ - } — завершаем цикл по строкам
- void func(Matrix mtx) { — функция для выполнения действия над элементами матрицы
- int i, j, middle = N / 2; — объявляем переменные для циклов и для определения среднего элемента
- for (i = 0; i < N; ++i) { — начинаем цикл по строкам матрицы
- for (j = 0; j < N; ++j) { — начинаем цикл по столбцам матрицы
- if (((i <= middle) && (middle - i <= j) && (j <= middle + i))
- || ((middle < i) && (middle + i — N + 1 <= j) && (j <= middle - i + N - 1))) { — проверяем условие для
закрашивания
элемента - mtx[i][j] = 0; — меняем значение элемента на 0
- } — завершаем цикл по столбцам
- } — завершаем цикл по строкам
- int main() { — основная функция программы
- Matrix mtx = {{1, 2, 3, 4, 5, 6, 7}, — создаем матрицу с начальными значениями
- {1, 2, 3, 4, 5, 6, 7},
- {1, 2, 3, 4, 5, 6, 7},
- {1, 2, 3, 4, 5, 6, 7},
- {1, 2, 3, 4, 5, 6, 7},
- {1, 2, 3, 4, 5, 6, 7},
- {1, 2, 3, 4, 5, 6, 7},
- {1, 2, 3, 4, 5, 6, 7}}; — и так далее
- print(mtx); — выводим начальное значение матрицы
- func(mtx); — вызываем функцию для выполнения действия над матрицей
- print(mtx); — выводим конечное значение матрицы
- return 0; — завершаем программу
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д