Informatică, întrebare adresată de vladbarbaneagra2004, 8 ani în urmă

Se consideră tabloul A[1..n,1..m] de numere întregi, unde n şi m<=20. Să se scrie un program care schimbă cu locul linia ce conţine elementul maxim cu linia ce conţine elementul minim.
In Dev C++. Imi trebuie repede. Dau 60 de puncte.

Răspunsuri la întrebare

Răspuns de VxF
2

Răspuns:

#include <iostream>

#include <iomanip>

#include <vector>

#include <climits>

int main()

{

   std::vector<std::vector<int>> tablou;

   int n, m, numar, numarMin = INT_MAX, numarMax = INT_MIN, randMin, randMax;

   

   std::cout << "n: ";

   std::cin >> n;

   std::cout << "m: ";

   std::cin >> m;

   tablou.reserve(m);

   

   for (int i = 0; i < m; i++) {

       std::cout << "Rând " << i + 1 << " (" << n << " numere): ";

       std::vector<int> rand;

       rand.reserve(n);

       for (int j = 0; j < n; j++) {

           std::cin >> numar;

           rand.push_back(numar);

       }

       tablou.push_back(rand);

   }

       

   for (int i = 0; i < m; i++) {

       for (int j = 0; j < n; j++) {

           if (numarMin > tablou[i][j]) {

               numarMin = tablou[i][j];

               randMin = i;

           }

           if (numarMax < tablou[i][j]) {

               numarMax = tablou[i][j];

               randMax = i;

           }

       }

   }

   if (randMin != randMax) {

       std::vector<int> temporar = tablou[randMin];

       tablou[randMin] = tablou[randMax];

       tablou[randMax] = temporar;

   }

   std::cout << "Tablou:" << std::endl;

   for (int i = 0; i < m; i++) {

       for (int j = 0; j < n; j++) {

           std::cout << std::setw(5) << tablou[i][j];

       }

       std::cout << std::endl;

   }

}

Explicație:

Alte întrebări interesante