Переставить в матрице друг с другом квадраты по кругу - C (СИ)

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

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

Рассматривая матрицу A(n × n) как составленную из четырех квадратов, переставить в ней друг с другом квадраты по кругу. Помогите пожалуйста. Спасибо.

Решение задачи: «Переставить в матрице друг с другом квадраты по кругу»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define N 6
  4. int main()
  5. {
  6.     int A[N][N] = {{ 1, 2, 3, 4, 5, 6},
  7.                    { 7, 8, 9,10,11,12},
  8.                    {13,14,15,16,17,18},
  9.                    {19,20,21,22,23,24},
  10.                    {25,26,27,28,29,30},
  11.                    {31,32,33,34,35,36}};
  12.     int i, j, buff;
  13.     for(i = 0; i < N / 2; ++i){
  14.         for(j = 0; j < N / 2; ++j){
  15.             buff = A[N / 2 + i][j];
  16.             A[N / 2 + i][j] = A[i][j];
  17.             A[i][j] = buff;
  18.         }
  19.     }
  20.     for(i = 0; i < N / 2; ++i){
  21.         for(j = N / 2; j < N; ++j){
  22.             buff = A[N / 2 + i][j];
  23.             A[N / 2 + i][j] = A[i][j];
  24.             A[i][j] = buff;
  25.         }
  26.     }
  27.     for(i = N / 2; i < N; ++i)
  28.         for(j = 0; j < N / 2; ++j){
  29.             buff = A[i - N / 2][j + N / 2];
  30.             A[i - N / 2][j + N / 2] = A[i][j];
  31.             A[i][j] = buff;
  32.         }
  33.      for(i = 0; i < N; ++i){
  34.         for(j = 0; j < N; ++j)
  35.             printf("%3d", A[i][j]);
  36.         printf("\n");
  37.     }
  38.     return 0;
  39. }

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

  1. Включаются заголовочные файлы stdio.h и stdlib.h
  2. Определяется размерность матрицы N = 6
  3. Создается матрица A типа int размером N x N и инициализируется значениями от 1 до 36
  4. Создаются переменные i, j, buff типа int для выполнения операций перестановки
  5. В первой половине матрицы (i < N / 2) выполняется перестановка элементов по диагонали, начиная с элемента A[N / 2 + i][j]
  6. Во второй половине матрицы (i < N / 2) выполняется перестановка элементов по диагонали, начиная с элемента A[N / 2 + i][j]
  7. В третьей половине матрицы (i < N / 2) выполняется перестановка элементов по диагонали, начиная с элемента A[i - N / 2][j + N / 2]
  8. Выводится на экран содержимое матрицы A
  9. Функция main() возвращает 0, завершая программу

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


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

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

6   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы