Sanlover

Untitled

Jan 20th, 2022 (edited)
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.11 KB | None | 0 0
  1. #include <iostream>
  2. #include <Windows.h>
  3. #include <iomanip>
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     // Подключаем русскую кодировку для консоли
  9.     SetConsoleOutputCP(1251);
  10.     // Высоты и ширины массивов в виде констант
  11.     const int matrixHeight = 3, matrixWidth = 18;
  12.  
  13.     // Выделяем память под строчки матрицы matrix
  14.     auto matrix = new double*[matrixHeight];
  15.     // В каждой строчке выделяем память под все ряды матрицы matrix
  16.     for (int i = 0; i < matrixHeight; i++)
  17.     {
  18.         matrix[i] = new double[matrixWidth];
  19.     }
  20.  
  21.     cout << endl << "Заполните матрицу [" << matrixHeight << "][" << matrixWidth << "]:" << endl;
  22.     for (int i = 0; i < matrixHeight; i++)
  23.     {
  24.         for (int j = 0; j < matrixWidth; j++)
  25.         {
  26.             cout << "[" << i << "][" << j << "]) ";
  27.             cin >> matrix[i][j];
  28.         }
  29.     }
  30.     cout << endl << endl << " Матрица до перестановки:" << endl;
  31.     for (int i = 0; i < matrixHeight; i++)
  32.     {
  33.         for (int j = 0; j < matrixWidth; j++)
  34.         {
  35.             cout << setw(3) << matrix[i][j];
  36.         }
  37.         cout << endl;
  38.     }
  39.     auto matrixSwapped = new double*[matrixHeight];
  40.     for (int i = 0; i < matrixHeight; i++)
  41.     {
  42.         matrixSwapped[i] = new double[matrixWidth];
  43.     }
  44.  
  45.     int count = matrixWidth / 2;
  46.     int id = 0;
  47.     for (int k = 0; k < count; k++)
  48.     {
  49.         for (int i = 0; i < matrixHeight; i++)
  50.         {
  51.             matrixSwapped[i][id] = matrix[i][k];
  52.         }
  53.         id++;
  54.         for (int i = 0; i < matrixHeight; i++)
  55.         {
  56.             matrixSwapped[i][id] = matrix[i][matrixWidth - k - 1];
  57.         }
  58.         id++;
  59.     }
  60.     if (matrixWidth % 2 != 0)
  61.     {
  62.         for (int i = 0; i < matrixHeight; i++)
  63.         {
  64.             matrixSwapped[i][id] = matrix[i][matrixWidth - 1];
  65.         }
  66.     }
  67.     for (int i = 0; i < matrixHeight; i++)
  68.     {
  69.         delete[] matrix[i];
  70.     }
  71.     delete[] matrix;
  72.     matrix = matrixSwapped;
  73.     cout << endl << endl << " Матрица после перестановки:" << endl;
  74.     for (int i = 0; i < matrixHeight; i++)
  75.     {
  76.         for (int j = 0; j < matrixWidth; j++)
  77.         {
  78.             cout << setw(3) << matrix[i][j];
  79.         }
  80.         cout << endl;
  81.     }
  82.  
  83.     return 0;
  84. }
  85.  
Add Comment
Please, Sign In to add comment