Для начала, рассмотрим, как создать и заполнить матрицу в C++. Матрицу можно представить как двухмерный массив. Для создания такого массива нужно указать тип его элементов и его размеры. Например, создадим матрицу размером 3x3 и заполним ее случайными числами:
#include <iostream> #include <cstdlib> // для генерации случайных чисел #include <ctime> // для инициализации генератора случайных чисел int main() { // инициализируем генератор случайных чисел std::srand(std::time(0)); // размеры матрицы const int rows = 3; const int cols = 3; // создаем и заполняем матрицу случайными числами int matrix[rows][cols]; for (int i = 0; i < rows; ++i) { for (int j = 0; j < cols; ++j) { matrix[i][j] = std::rand() % 100; // случайное число от 0 до 99 } } // выводим исходную матрицу на экран std::cout << "Исходная матрица:" << std::endl; for (int i = 0; i < rows; ++i) { for (int j = 0; j < cols; ++j) { std::cout << matrix[i][j] << ' '; } std::cout << std::endl; } // TODO: здесь будет код для замены строк с столбцами return 0; }
Теперь, чтобы заменить четные строки с четными столбцами в матрице, можно использовать циклы с условием, проверяющим четность строк и столбцов. Если строка и столбец четные, то меняем их значения местами.
// замена строк с четными столбцами for (int i = 0; i < rows; i += 2) { if (i % 2 == 0) { for (int j = 0; j < cols; j += 2) { if (j % 2 == 0) { std::swap(matrix[i][j], matrix[j][i]); } } } } // выводим измененную матрицу на экран std::cout << "Матрица после замены:" << std::endl; for (int i = 0; i < rows; ++i) { for (int j = 0; j < cols; ++j) { std::cout << matrix[i][j] << ' '; } std::cout << std::endl; }
Здесь используется функция std::swap
, которая меняет местами значения двух переменных. В данном случае мы меняем значения элементов matrix[i][j]
и matrix[j][i]
. После завершения циклов матрица будет иметь поменяные четные строки и столбцы.
Таким образом, чтобы создать цикл, который заменит местами четные строки с четными столбцами в матрице, нужно использовать два вложенных цикла: один для обхода строк, а другой для обхода столбцов. В циклах проверяется четность индексов строк и столбцов, и если они четные, то значения этих элементов меняются местами с помощью функции std::swap
.