ToniDev

Interschimbare coloane matrice cu conditie

Nov 13th, 2023
816
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.67 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void afisare(int matrice[50][50], int n, int m)
  5. {
  6.     cout << "Afisare matrice: " << endl;
  7.     for (int i = 0; i < n; i++) // linii
  8.     {
  9.         for (int j = 0; j < m; j++) // coloane
  10.         {
  11.             cout << matrice[i][j] << " ";
  12.         }
  13.         cout << endl;
  14.     }
  15. }
  16.  
  17.  
  18. int main()
  19. {
  20.     int n, m; // linii, coloane
  21.  
  22.     cout << "n [2,50] = "; cin >> n;
  23.     cout << "m [2,50] = "; cin >> m;
  24.  
  25.     if (n < 2 || n > 50 || m < 2 || m > 50)
  26.     {
  27.         cout << "Nu ai respectat intervalele.";
  28.         return -1;
  29.     }
  30.  
  31.     int matrice[50][50];
  32.  
  33.     // Populare matrice
  34.     for (int i = 0; i < n; i++) // linii
  35.     {
  36.         for (int j = 0; j < m; j++) // coloane
  37.         {
  38.             cout << "Introdu o valoare cuprinsa intre: [0, 10000]!" << endl;
  39.             cout << "matrice[" << i << "][" << j << "] = ";
  40.             cin >> matrice[i][j];
  41.  
  42.             // Check interval
  43.             if (matrice[i][j] < 0 || matrice[i][j] > 10000)
  44.             {
  45.                 cout << "Nu ai respectat intervalul!" << endl;
  46.                 return -1;
  47.             }
  48.         }
  49.     }
  50.  
  51.     afisare(matrice, n, m);
  52.  
  53.     int valMin = matrice[0][0], valMax = matrice[0][0];
  54.     int coloanaMin = 0, coloanaMax = 0;
  55.  
  56.     // Cautare valoare minima si maxima in matrice
  57.     for (int i = 0; i < n; i++) // linii
  58.     {
  59.         for (int j = 0; j < m; j++) // coloane
  60.         {
  61.             if (matrice[i][j] < valMin)
  62.             {
  63.                 valMin = matrice[i][j];
  64.                 coloanaMin = j;
  65.             }
  66.  
  67.             if (matrice[i][j] > valMax)
  68.             {
  69.                 valMax = matrice[i][j];
  70.                 coloanaMax = j;
  71.             }
  72.         }
  73.     }
  74.  
  75.  
  76.     // Interschimbare coloana minima cu coloana maxima
  77.     for (int i = 0; i < n; i++) // linii
  78.     {
  79.         int aux = matrice[i][coloanaMin];
  80.         matrice[i][coloanaMin] = matrice[i][coloanaMax];
  81.         matrice[i][coloanaMax] = aux;
  82.     }
  83.  
  84.     afisare(matrice, n, m);
  85.  
  86.  
  87.     return 0;
  88. }
  89.  
  90.  
Advertisement
Add Comment
Please, Sign In to add comment