Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <Windows.h>
- #include <iomanip>
- using namespace std;
- int main()
- {
- // Подключаем русскую кодировку для консоли
- SetConsoleOutputCP(1251);
- // Высоты и ширины массивов в виде констант
- const int matrixHeight = 3, matrixWidth = 18;
- // Выделяем память под строчки матрицы matrix
- auto matrix = new double*[matrixHeight];
- // В каждой строчке выделяем память под все ряды матрицы matrix
- for (int i = 0; i < matrixHeight; i++)
- {
- matrix[i] = new double[matrixWidth];
- }
- cout << endl << "Заполните матрицу [" << matrixHeight << "][" << matrixWidth << "]:" << endl;
- for (int i = 0; i < matrixHeight; i++)
- {
- for (int j = 0; j < matrixWidth; j++)
- {
- cout << "[" << i << "][" << j << "]) ";
- cin >> matrix[i][j];
- }
- }
- cout << endl << endl << " Матрица до перестановки:" << endl;
- for (int i = 0; i < matrixHeight; i++)
- {
- for (int j = 0; j < matrixWidth; j++)
- {
- cout << setw(3) << matrix[i][j];
- }
- cout << endl;
- }
- auto matrixSwapped = new double*[matrixHeight];
- for (int i = 0; i < matrixHeight; i++)
- {
- matrixSwapped[i] = new double[matrixWidth];
- }
- int count = matrixWidth / 2;
- int id = 0;
- for (int k = 0; k < count; k++)
- {
- for (int i = 0; i < matrixHeight; i++)
- {
- matrixSwapped[i][id] = matrix[i][k];
- }
- id++;
- for (int i = 0; i < matrixHeight; i++)
- {
- matrixSwapped[i][id] = matrix[i][matrixWidth - k - 1];
- }
- id++;
- }
- if (matrixWidth % 2 != 0)
- {
- for (int i = 0; i < matrixHeight; i++)
- {
- matrixSwapped[i][id] = matrix[i][matrixWidth - 1];
- }
- }
- for (int i = 0; i < matrixHeight; i++)
- {
- delete[] matrix[i];
- }
- delete[] matrix;
- matrix = matrixSwapped;
- cout << endl << endl << " Матрица после перестановки:" << endl;
- for (int i = 0; i < matrixHeight; i++)
- {
- for (int j = 0; j < matrixWidth; j++)
- {
- cout << setw(3) << matrix[i][j];
- }
- cout << endl;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment