SHARE
TWEET

Untitled

a guest Oct 23rd, 2019 83 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <Windows.h>
  3. #define N 25
  4. using namespace std;
  5.  
  6. // Функция ввода матрицы
  7. int Enter_Matrix(int Array[][N], int& m, int& n)
  8. {
  9.     // Ввод размерности матрицы и проверки её на отрицательность
  10.     printf("\n Введи размерности матрицы: ");
  11.     while (1)
  12.     {
  13.         scanf_s("%d %d", &m, &n);
  14.         if ((n > 1) && (n <= N) && (m > 1)) break;
  15.         else printf(" Неверный ввод! Повторите: ");
  16.     }
  17.     // Ввод матрицы через пробел
  18.     printf(" Введите матрицу:\n");
  19.     for (int i = 0; i < m; i++)
  20.         for (int j = 0; j < n; j++)
  21.             scanf_s("%d", &Array[i][j]);
  22.     return Array[m][n];
  23. }
  24.  
  25. // Функция вывода матрицы
  26. void Print_Matrix(int Array[][N], int m, int n)
  27. {
  28.     printf("\n Результат выполнения:\n");
  29.     for (int i = 0; i < m; i++)
  30.     {
  31.         for (int j = 0; j < n; j++)
  32.             printf("%3d ", Array[i][j]);
  33.         printf("\n");
  34.     }
  35. }
  36.  
  37. // Функция, переставляющая строки и столбцы
  38. int Matrix(int Array[][N], int m, int n, int&s_max, int&c_max)
  39. {
  40.     int Max = Array[0][0];
  41.     // Определение индексов максимального элемента матрицы
  42.     for (int i = 0; i < m; i++)
  43.         for (int j = 0; j < n; j++)
  44.         {
  45.             if (Array[i][j] > Max)
  46.             {
  47.                 Max = Array[i][j];
  48.                 s_max = i;
  49.                 c_max = j;
  50.             }
  51.         }
  52.     // Перемещение строк
  53.     for (int j = 0; j < n; j++)
  54.     {
  55.         int t = Array[0][j];
  56.         Array[0][j] = Array[s_max][j];
  57.         Array[s_max][j] = t;
  58.     }
  59.     // Перемещение столбцов
  60.     for (int i = 0; i < m; i++)
  61.     {
  62.         int t = Array[i][0];
  63.         Array[i][0] = Array[i][c_max];
  64.         Array[i][c_max] = t;
  65.     }
  66.     return Array[m][n];
  67. }
  68.  
  69. int main()
  70. {
  71.     // Подключение русского языка
  72.     SetConsoleCP(1251);
  73.     SetConsoleOutputCP(1251);
  74.  
  75.     int Array[N][N], m = 0, n = 0, s_max = 0, c_max = 0;
  76.     printf(" Дана матрица размером M*N.\n Программа переставляет строки и столбцы местами таким образом, чтобы максимальный элемент матрицы оказался в левом-верхнем углу.\n");
  77.     Enter_Matrix(Array, m, n); // Ввод матрицы
  78.     Matrix(Array, m, n, s_max, c_max); // Перемещение строк и столбцов
  79.     Print_Matrix(Array, m, n); // Вывод готовой матрицы
  80.     return 0;
  81. }
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