Выполнение действия над указанными элементами матрицы - 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;
}

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

В данном коде выполняется следующая последовательность действий:

  1. #include — подключаем стандартную библиотеку для работы с консолью
  2. #define N 7 — определяем размерность матрицы (7х7)
  3. typedef int Matrix[N][N]; — создаем тип данных для матрицы, чтобы не писать двойные индексы
  4. void print(Matrix mtx) { — функция для вывода элементов матрицы на экран
  5. int i, j; — объявляем переменные для циклов
  6. for (i = 0; i < N; ++i) { — начинаем цикл по строкам матрицы
  7. for (j = 0; j < N; ++j) { — начинаем цикл по столбцам матрицы
  8. printf(%2d, mtx[i][j]); — выводим значение элемента на экран
  9. printf(\n); — переходим на новую строку
  10. } — завершаем цикл по столбцам
  11. printf(\n); — выводим разделительный символ
  12. } — завершаем цикл по строкам
  13. void func(Matrix mtx) { — функция для выполнения действия над элементами матрицы
  14. int i, j, middle = N / 2; — объявляем переменные для циклов и для определения среднего элемента
  15. for (i = 0; i < N; ++i) { — начинаем цикл по строкам матрицы
  16. for (j = 0; j < N; ++j) { — начинаем цикл по столбцам матрицы
  17. if (((i <= middle) && (middle - i <= j) && (j <= middle + i))
  18. || ((middle < i) && (middle + i — N + 1 <= j) && (j <= middle - i + N - 1))) { — проверяем условие для закрашивания элемента
  19. mtx[i][j] = 0; — меняем значение элемента на 0
  20. } — завершаем цикл по столбцам
  21. } — завершаем цикл по строкам
  22. int main() { — основная функция программы
  23. Matrix mtx = {{1, 2, 3, 4, 5, 6, 7}, — создаем матрицу с начальными значениями
  24. {1, 2, 3, 4, 5, 6, 7},
  25. {1, 2, 3, 4, 5, 6, 7},
  26. {1, 2, 3, 4, 5, 6, 7},
  27. {1, 2, 3, 4, 5, 6, 7},
  28. {1, 2, 3, 4, 5, 6, 7},
  29. {1, 2, 3, 4, 5, 6, 7},
  30. {1, 2, 3, 4, 5, 6, 7}}; — и так далее
  31. print(mtx); — выводим начальное значение матрицы
  32. func(mtx); — вызываем функцию для выполнения действия над матрицей
  33. print(mtx); — выводим конечное значение матрицы
  34. return 0; — завершаем программу

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


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

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

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