Предмет: Информатика, автор: whatd

Как написать на языке C++?
Матрица поделена на 4 треугольных секций (крестовина + диагонали квадрата). Поменять местами пару секций (расположенные над/под горизонтальной крестовиной, посередине от вертикальной)

Ответы

Автор ответа: kotakasi52
0

Ответ:

#include <iostream>

const int N = 4; // размер матрицы

void swap(int matrix[N][N], int row1, int row2) {

   for (int col = 0; col < N; col++) {

       int temp = matrix[row1][col];

       matrix[row1][col] = matrix[row2][col];

       matrix[row2][col] = temp;

   }

}

void swapSections(int matrix[N][N]) {

   // Номера строк секций, которые нужно поменять местами

   int row1 = N / 2 - 1;

   int row2 = N / 2;

   // Меняем местами строки, соответствующие секциям

   swap(matrix, row1, row2);

   // Меняем местами диагонали квадрата

   for (int i = 0; i < N; i++) {

       int temp = matrix[i][i];

       matrix[i][i] = matrix[N - i - 1][N - i - 1];

       matrix[N - i - 1][N - i - 1] = temp;

   }

}

int main() {

   int matrix[N][N] = {{1, 2, 3, 4},

                       {5, 6, 7, 8},

                       {9, 10, 11, 12},

                       {13, 14, 15, 16}};

   // Выводим исходную матрицу

   std::cout << "Исходная матрица:\n";

   for (int i = 0; i < N; i++) {

       for (int j = 0; j < N; j++) {

           std::cout << matrix[i][j] << " ";

       }

       std::cout << "\n";

   }

   // Меняем местами пару секций

   swapSections(matrix);

   // Выводим полученную матрицу

   std::cout << "Матрица после перестановки:\n";

   for (int i = 0; i < N; i++) {

       for (int j = 0; j < N; j++) {

           std::cout << matrix[i][j] << " ";

       }

       std::cout << "\n";

   }

   return 0;

}

Объяснение:

В моем примере для решения задачи мы определили функцию 'swap', которая меняет местами две строки матрицы, и функцию 'swapSections', которая вызывает 'swap' для нужных строк и меняет местами диагонали квадрата. Затем на примере я использую эти функции в функции 'main' для смены места пары секций в матрице.


kotakasi52: Забыл скинуть скриншот работоспособности в онлайн компиляторе, но можешь сам проверить - код работает. Можешь интегрировать его в собственные работы.
Похожие вопросы
Предмет: Алгебра, автор: hoptaulia371
Предмет: Биология, автор: Katja5689