Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <windows.h>
- #include <algorithm>
- #include<math.h>
- #include <cstdlib>
- using namespace std;
- int main()
- {
- short m;
- setlocale(LC_ALL, "rus");
- short a, b, c, d, e;
- short i,j;
- int x[5][5];
- cout << "Введите число М[2,5]=";
- while (!(cin >> m) || cin.get() != '\n' || (m > 5 || m < 2))
- {
- cin.clear();//Очищает поток
- cin.sync();//Удаляем данные из буфера
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "Введите число М[2,5]=";
- }
- if (m == 2)
- {
- cout << "Введите 1ое значение матрицы[1,100]= ";
- while (!(cin >> a) || cin.get() != '\n' || (a > 100 || a < 1))
- {
- cin.clear();//Очищает поток
- cin.sync();//Удаляем данные из буфера
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "Не верный ввод!!! Введите число[1,100] : ";
- }
- x[0][0] = a;
- cout << "Введите 2ое значение матрицы[1,100]= ";
- while (!(cin >> b) || cin.get() != '\n' || (b > 100 || b < 1))
- {
- cin.clear();//Очищает поток
- cin.sync();//Удаляем данные из буфера
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "Не верный ввод!!! Введите число[1,100] : ";
- }
- x[0][1] = b;
- cout << "Введите 3e значение матрицы[1,100]= ";
- while (!(cin >> c) || cin.get() != '\n' || (c > 100 || c < 1))
- {
- cin.clear();//Очищает поток
- cin.sync();//Удаляем данные из буфера
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "Не верный ввод!!! Введите число[1,100] : ";
- }
- x[1][0] = c;
- cout << "Введите 4e значение матрицы[1,100]= ";
- while (!(cin >> d) || cin.get() != '\n' || (d > 100 || d < 1))
- {
- cin.clear();//Очищает поток
- cin.sync();//Удаляем данные из буфера
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "Не верный ввод!!! Введите число[1,100] : ";
- }
- x[1][1] = d;
- }
- if (m == 3)
- {
- cout << "Введите 1ое значение матрицы[1,100]= ";
- while (!(cin >> a) || cin.get() != '\n' || (a > 100 || a < 1))
- {
- cin.clear();//Очищает поток
- cin.sync();//Удаляем данные из буфера
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "Не верный ввод!!! Введите число[1,100] : ";
- }
- x[0][0] = a;
- cout << "Введите 2ое значение матрицы[1,100]= ";
- while (!(cin >> b) || cin.get() != '\n' || (b > 100 || b < 1))
- {
- cin.clear();//Очищает поток
- cin.sync();//Удаляем данные из буфера
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "Не верный ввод!!! Введите число[1,100] : ";
- }
- x[0][1] = b;
- cout << "Введите 3e значение матрицы[1,100]= ";
- while (!(cin >> c) || cin.get() != '\n' || (c > 100 || c < 1))
- {
- cin.clear();//Очищает поток
- cin.sync();//Удаляем данные из буфера
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "Не верный ввод!!! Введите число[1,100] : ";
- }
- x[0][2] = c;
- for ( i = 1; i < 3; i++)
- {
- for(j = 0; j < 3; j++)
- {
- x[i][j] = rand() % 100;
- }
- }
- }
- if (m == 4)
- {
- cout << "Введите 1ое значение матрицы[1,100]= ";
- while (!(cin >> a) || cin.get() != '\n' || (a > 100 || a < 1))
- {
- cin.clear();//Очищает поток
- cin.sync();//Удаляем данные из буфера
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "Не верный ввод!!! Введите число[1,100] : ";
- }
- x[0][0] = a;
- cout << "Введите 2ое значение матрицы[1,100]= ";
- while (!(cin >> b) || cin.get() != '\n' || (b > 100 || b < 1))
- {
- cin.clear();//Очищает поток
- cin.sync();//Удаляем данные из буфера
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "Не верный ввод!!! Введите число[1,100] : ";
- }
- x[0][1] = b;
- cout << "Введите 3e значение матрицы[1,100]= ";
- while (!(cin >> c) || cin.get() != '\n' || (c > 100 || c < 1))
- {
- cin.clear();//Очищает поток
- cin.sync();//Удаляем данные из буфера
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "Не верный ввод!!! Введите число[1,100] : ";
- }
- x[0][2] = c;
- cout << "Введите 4e значение матрицы[1,100]= ";
- while (!(cin >> d) || cin.get() != '\n' || (d > 100 || d < 1))
- {
- cin.clear();//Очищает поток
- cin.sync();//Удаляем данные из буфера
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "Не верный ввод!!! Введите число[1,100] : ";
- }
- x[0][3] = d;
- for ( i = 1; i < 4; i++)
- {
- for (j = 0; j < 4; j++)
- {
- x[i][j] = rand() % 100;
- }
- }
- }
- if (m == 5)
- {
- cout << "Введите 1ое значение матрицы[1,100]= ";
- while (!(cin >> a) || cin.get() != '\n' || (a > 100 || a < 1))
- {
- cin.clear();//Очищает поток
- cin.sync();//Удаляем данные из буфера
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "Не верный ввод!!! Введите число[1,100] : ";
- }
- x[0][0] = a;
- cout << "Введите 2ое значение матрицы[1,100]= ";
- while (!(cin >> b) || cin.get() != '\n' || (b > 100 || b < 1))
- {
- cin.clear();//Очищает поток
- cin.sync();//Удаляем данные из буфера
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "Не верный ввод!!! Введите число[1,100] : ";
- }
- x[0][1] = b;
- cout << "Введите 3e значение матрицы[1,100]= ";
- while (!(cin >> c) || cin.get() != '\n' || (c > 100 || c < 1))
- {
- cin.clear();//Очищает поток
- cin.sync();//Удаляем данные из буфера
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "Не верный ввод!!! Введите число[1,100] : ";
- }
- x[0][2] = c;
- cout << "Введите 4e значение матрицы[1,100]= ";
- while (!(cin >> d) || cin.get() != '\n' || (d > 100 || d < 1))
- {
- cin.clear();//Очищает поток
- cin.sync();//Удаляем данные из буфера
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "Не верный ввод!!! Введите число[1,100] : ";
- }
- x[0][3] = d;
- cout << "Введите 5e значение матрицы[1,100]= ";
- while (!(cin >> e) || cin.get() != '\n' || (d > 100 || d < 1))
- {
- cin.clear();//Очищает поток
- cin.sync();//Удаляем данные из буфера
- cin.ignore(cin.rdbuf()->in_avail());
- cout << "Не верный ввод!!! Введите число[1,100] : ";
- }
- x[0][4] = e;
- for ( i = 1; i < 5; i++)
- {
- for (j = 0; j < 5; j++)
- {
- x[i][j] = rand() % 100;
- }
- }
- }
- for ( i = 0; i < m; i++) //Вывести матрицу
- {
- for ( j = 0; j < m; j++)
- {
- cout << " [" << x[i][j] << "] ";
- if (j == m - 1)cout << "\n"<<endl;
- }
- }
- for (short k = 0; k < m*m*m ; k++)
- {
- for ( i = 0; i < m; i++)
- {
- for ( j = 0; j < m; j++)
- {
- if ((i + j == m - 1) || (i + j < m - 1)) //лежит на побочной диагонали или лежит выше побочной диагонали
- {
- if (j + i + 1 != m)
- {
- if ( x[i][j] > x[i][j + 1] )
- {
- short tmp = x[i][j + 1];
- x[i][j + 1] = x[i][j];
- x[i][j] = tmp;
- }
- }
- else {
- if ((x[i + 1][0] < x[i][j]) && (i != m - 1))
- {
- short tmp = x[i + 1][0];
- x[i + 1][0] = x[i][j];
- x[i][j] = tmp;
- }
- }
- }
- else //лежит ниже побочной диагонали
- {
- x[i][j] = x[i][j] * -1;
- }
- }
- }
- }
- if (m == 2 || m == 4)
- {
- for ( i = 0; i < m; i++)
- {
- for ( j = 0; j < m; j++)
- {
- if (i + j > m - 1)
- {
- x[i][j] = x[i][j] * -1;
- }
- }
- }
- }
- cout << endl;
- for ( i = 0; i < m; i++) //Вывод матрицы
- {
- for ( j = 0; j < m; j++)
- {
- cout << " [" <<x[i][j] << "] ";
- if (j == m - 1)cout << "\n"<<endl;
- }
- }
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement