#include <iostream>
#include <iomanip> 
#include <ctime>
using namespace std;
int main() {
    /////////////////////////////////////////// Задание №5 Вариант 1052  /////////////////////////////////////////////////
    ///Дан Двумерный массив из 20 столбцов. Переставить первые три и последние три столбца, сохранив порядок их следования.
    srand ( time(NULL) );
    const int n = 20;
    const int m = 5; 
    int arr[m][n];
    int X;
    
    cout << "\t\t\t\tЭлементы массива: " << endl; 
    
    //Заполнение массива случайными числами
    for(int i = 0; i < m;i++){
        for(int j = 0; j < n;j++){
            arr[i][j] =  rand() % 50;
            cout << setw(4) <<arr[i][j];
        }
        cout << endl;
    }
    
     cout << endl << "\t\t\t\tФорматированный массив: " << endl;
    for (int j = 0; j < m; j++){
        for (int i = 0; i < n; i++){
            if (i == 0){
                X = arr[j][i];
                arr[j][i] = arr[j][n-1];
                arr[j][n-1] = X;
            }
            if (i == 1){
                X = arr[j][i];
                arr[j][i] = arr[j][n-2];
                arr[j][n-2] = X;
            }
            if (i == 2){
                X = arr[j][i];
                arr[j][i] = arr[j][n-3];
                arr[j][n-3] = X;
            }
        }
    }
    
    for(int i = 0; i < m;i++){
        for(int j = 0; j < n;j++){
            cout << setw(4) <<arr[i][j];
        }
        cout << endl;
    }
    
    return 0;
}