SHARE
TWEET

Max Bychkov1919

a guest Dec 7th, 2019 75 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3. #include <iostream>
  4. #include <windows.h>
  5. #include <algorithm>
  6. #include<math.h>
  7. #include <cstdlib>
  8.  
  9. using namespace std;
  10.  
  11.  
  12.  
  13. int main()
  14. {
  15.     short m;
  16.     setlocale(LC_ALL, "rus");  
  17.     short a, b, c, d, e;
  18.     short i,j;
  19.     int x[5][5];
  20.     cout << "Введите число М[2,5]=";
  21.     while (!(cin >> m) || cin.get() != '\n' || (m > 5 || m < 2))
  22.     {
  23.         cin.clear();//Очищает поток
  24.         cin.sync();//Удаляем данные из буфера
  25.         cin.ignore(cin.rdbuf()->in_avail());
  26.         cout << "Введите число М[2,5]=";
  27.  
  28.     }
  29.  
  30.    
  31.    
  32.  
  33.  
  34.  
  35.  
  36.     if (m == 2)
  37.     {      
  38.         cout << "Введите 1ое значение матрицы[1,100]= ";
  39.         while (!(cin >> a) || cin.get() != '\n' || (a > 100 || a < 1))
  40.         {
  41.             cin.clear();//Очищает поток
  42.             cin.sync();//Удаляем данные из буфера
  43.             cin.ignore(cin.rdbuf()->in_avail());
  44.             cout << "Не верный ввод!!! Введите число[1,100] : ";
  45.  
  46.         }
  47.         x[0][0] = a;
  48.  
  49.         cout << "Введите 2ое значение матрицы[1,100]= ";
  50.  
  51.         while (!(cin >> b) || cin.get() != '\n' || (b > 100 || b < 1))
  52.         {
  53.             cin.clear();//Очищает поток
  54.             cin.sync();//Удаляем данные из буфера
  55.             cin.ignore(cin.rdbuf()->in_avail());
  56.             cout << "Не верный ввод!!! Введите число[1,100] : ";
  57.  
  58.         }
  59.  
  60.         x[0][1] = b;
  61.  
  62.         cout << "Введите 3e значение матрицы[1,100]= ";
  63.  
  64.         while (!(cin >> c) || cin.get() != '\n' || (c > 100 || c < 1))
  65.         {
  66.             cin.clear();//Очищает поток
  67.             cin.sync();//Удаляем данные из буфера
  68.             cin.ignore(cin.rdbuf()->in_avail());
  69.             cout << "Не верный ввод!!! Введите число[1,100] : ";
  70.  
  71.         }
  72.  
  73.         x[1][0] = c;
  74.  
  75.         cout << "Введите 4e значение матрицы[1,100]= ";
  76.  
  77.         while (!(cin >> d) || cin.get() != '\n' || (d > 100 || d < 1))
  78.         {
  79.             cin.clear();//Очищает поток
  80.             cin.sync();//Удаляем данные из буфера
  81.             cin.ignore(cin.rdbuf()->in_avail());
  82.             cout << "Не верный ввод!!! Введите число[1,100] : ";
  83.  
  84.         }
  85.  
  86.         x[1][1] = d;
  87.     }
  88.  
  89.  
  90.     if (m == 3)
  91.     {
  92.         cout << "Введите 1ое значение матрицы[1,100]= ";
  93.         while (!(cin >> a) || cin.get() != '\n' || (a > 100 || a < 1))
  94.         {
  95.             cin.clear();//Очищает поток
  96.             cin.sync();//Удаляем данные из буфера
  97.             cin.ignore(cin.rdbuf()->in_avail());
  98.             cout << "Не верный ввод!!! Введите число[1,100] : ";
  99.  
  100.         }
  101.         x[0][0] = a;
  102.  
  103.         cout << "Введите 2ое значение матрицы[1,100]= ";
  104.  
  105.         while (!(cin >> b) || cin.get() != '\n' || (b > 100 || b < 1))
  106.         {
  107.             cin.clear();//Очищает поток
  108.             cin.sync();//Удаляем данные из буфера
  109.             cin.ignore(cin.rdbuf()->in_avail());
  110.             cout << "Не верный ввод!!! Введите число[1,100] : ";
  111.  
  112.         }
  113.  
  114.         x[0][1] = b;
  115.  
  116.         cout << "Введите 3e значение матрицы[1,100]= ";
  117.  
  118.         while (!(cin >> c) || cin.get() != '\n' || (c > 100 || c < 1))
  119.         {
  120.             cin.clear();//Очищает поток
  121.             cin.sync();//Удаляем данные из буфера
  122.             cin.ignore(cin.rdbuf()->in_avail());
  123.             cout << "Не верный ввод!!! Введите число[1,100] : ";
  124.  
  125.         }
  126.  
  127.         x[0][2] = c;
  128.         for ( i = 1; i < 3; i++)
  129.         {
  130.             for(j = 0; j < 3; j++)
  131.             {
  132.                 x[i][j] = rand() % 100;
  133.             }
  134.         }
  135.     }
  136.  
  137.     if (m == 4)
  138.     {
  139.         cout << "Введите 1ое значение матрицы[1,100]= ";
  140.         while (!(cin >> a) || cin.get() != '\n' || (a > 100 || a < 1))
  141.         {
  142.             cin.clear();//Очищает поток
  143.             cin.sync();//Удаляем данные из буфера
  144.             cin.ignore(cin.rdbuf()->in_avail());
  145.             cout << "Не верный ввод!!! Введите число[1,100] : ";
  146.  
  147.         }
  148.         x[0][0] = a;
  149.  
  150.         cout << "Введите 2ое значение матрицы[1,100]= ";
  151.  
  152.         while (!(cin >> b) || cin.get() != '\n' || (b > 100 || b < 1))
  153.         {
  154.             cin.clear();//Очищает поток
  155.             cin.sync();//Удаляем данные из буфера
  156.             cin.ignore(cin.rdbuf()->in_avail());
  157.             cout << "Не верный ввод!!! Введите число[1,100] : ";
  158.  
  159.         }
  160.  
  161.         x[0][1] = b;
  162.  
  163.         cout << "Введите 3e значение матрицы[1,100]= ";
  164.  
  165.         while (!(cin >> c) || cin.get() != '\n' || (c > 100 || c < 1))
  166.         {
  167.             cin.clear();//Очищает поток
  168.             cin.sync();//Удаляем данные из буфера
  169.             cin.ignore(cin.rdbuf()->in_avail());
  170.             cout << "Не верный ввод!!! Введите число[1,100] : ";
  171.  
  172.         }
  173.  
  174.         x[0][2] = c;
  175.  
  176.         cout << "Введите 4e значение матрицы[1,100]= ";
  177.  
  178.         while (!(cin >> d) || cin.get() != '\n' || (d > 100 || d < 1))
  179.         {
  180.             cin.clear();//Очищает поток
  181.             cin.sync();//Удаляем данные из буфера
  182.             cin.ignore(cin.rdbuf()->in_avail());
  183.             cout << "Не верный ввод!!! Введите число[1,100] : ";
  184.  
  185.         }
  186.  
  187.         x[0][3] = d;
  188.  
  189.         for ( i = 1; i < 4; i++)
  190.         {
  191.             for (j = 0; j < 4; j++)
  192.             {
  193.                 x[i][j] = rand() % 100;
  194.             }
  195.         }
  196.     }
  197.  
  198.     if (m == 5)
  199.     {
  200.         cout << "Введите 1ое значение матрицы[1,100]= ";
  201.         while (!(cin >> a) || cin.get() != '\n' || (a > 100 || a < 1))
  202.         {
  203.             cin.clear();//Очищает поток
  204.             cin.sync();//Удаляем данные из буфера
  205.             cin.ignore(cin.rdbuf()->in_avail());
  206.             cout << "Не верный ввод!!! Введите число[1,100] : ";
  207.  
  208.         }
  209.         x[0][0] = a;
  210.  
  211.         cout << "Введите 2ое значение матрицы[1,100]= ";
  212.  
  213.         while (!(cin >> b) || cin.get() != '\n' || (b > 100 || b < 1))
  214.         {
  215.             cin.clear();//Очищает поток
  216.             cin.sync();//Удаляем данные из буфера
  217.             cin.ignore(cin.rdbuf()->in_avail());
  218.             cout << "Не верный ввод!!! Введите число[1,100] : ";
  219.  
  220.         }
  221.  
  222.         x[0][1] = b;
  223.  
  224.         cout << "Введите 3e значение матрицы[1,100]= ";
  225.  
  226.         while (!(cin >> c) || cin.get() != '\n' || (c > 100 || c < 1))
  227.         {
  228.             cin.clear();//Очищает поток
  229.             cin.sync();//Удаляем данные из буфера
  230.             cin.ignore(cin.rdbuf()->in_avail());
  231.             cout << "Не верный ввод!!! Введите число[1,100] : ";
  232.  
  233.         }
  234.  
  235.         x[0][2] = c;
  236.  
  237.         cout << "Введите 4e значение матрицы[1,100]= ";
  238.  
  239.         while (!(cin >> d) || cin.get() != '\n' || (d > 100 || d < 1))
  240.         {
  241.             cin.clear();//Очищает поток
  242.             cin.sync();//Удаляем данные из буфера
  243.             cin.ignore(cin.rdbuf()->in_avail());
  244.             cout << "Не верный ввод!!! Введите число[1,100] : ";
  245.  
  246.         }
  247.  
  248.         x[0][3] = d;
  249.  
  250.         cout << "Введите 5e значение матрицы[1,100]= ";
  251.  
  252.         while (!(cin >> e) || cin.get() != '\n' || (d > 100 || d < 1))
  253.         {
  254.             cin.clear();//Очищает поток
  255.             cin.sync();//Удаляем данные из буфера
  256.             cin.ignore(cin.rdbuf()->in_avail());
  257.             cout << "Не верный ввод!!! Введите число[1,100] : ";
  258.  
  259.         }
  260.  
  261.         x[0][4] = e;
  262.  
  263.         for ( i = 1; i < 5; i++)
  264.         {
  265.             for (j = 0; j < 5; j++)
  266.             {
  267.                 x[i][j] = rand() % 100;
  268.             }
  269.         }
  270.     }
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  
  279.  
  280.  
  281.     for ( i = 0; i < m; i++) //Вывести матрицу
  282.     {
  283.         for ( j = 0; j < m; j++)
  284.         {
  285.             cout << "  [" << x[i][j] << "]  ";
  286.             if (j == m - 1)cout << "\n"<<endl;
  287.         }
  288.     }
  289.    
  290.     for (short k = 0; k < m*m*m ; k++)
  291.     {
  292.  
  293.         for ( i = 0; i < m; i++)
  294.         {
  295.             for ( j = 0; j < m; j++)
  296.             {
  297.                 if ((i + j == m - 1) || (i + j < m - 1)) //лежит на побочной диагонали или лежит выше побочной диагонали
  298.                 {
  299.                    
  300.                     if (j + i + 1 != m)
  301.                     {
  302.                         if ( x[i][j] > x[i][j + 1] )
  303.                         {
  304.                             short tmp = x[i][j + 1];
  305.                             x[i][j + 1] = x[i][j];
  306.                             x[i][j] = tmp;
  307.                         }
  308.                     }
  309.                     else {
  310.                         if ((x[i + 1][0] < x[i][j]) && (i != m - 1))
  311.                         {
  312.                             short tmp = x[i + 1][0];
  313.                             x[i + 1][0] = x[i][j];
  314.                             x[i][j] = tmp;
  315.                         }
  316.                     }
  317.                 }
  318.                 else //лежит ниже побочной диагонали
  319.                 {
  320.                     x[i][j] = x[i][j] * -1;
  321.                 }
  322.                
  323.             }
  324.         }
  325.     }
  326.    
  327.  
  328.  
  329.  
  330.     if (m == 2 || m == 4)
  331.     {
  332.         for ( i = 0; i < m; i++)
  333.         {
  334.             for ( j = 0; j < m; j++)
  335.             {
  336.                 if (i + j > m - 1)
  337.                 {
  338.                     x[i][j] = x[i][j] * -1;
  339.                 }
  340.             }
  341.         }
  342.     }
  343.  
  344.  
  345.     cout << endl;
  346.  
  347.    
  348.         for ( i = 0; i < m; i++) //Вывод матрицы
  349.         {
  350.             for ( j = 0; j < m; j++)
  351.             {
  352.                 cout << "  [" <<x[i][j] << "]  ";
  353.                 if (j == m - 1)cout << "\n"<<endl;
  354.             }
  355.         }
  356.         system("pause");
  357.     return 0;
  358. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top