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

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

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

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

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

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

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

  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
Похожие ответы