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

Se dă o matrice cu n linii și m coloane și elemente numere naturale diferite.


Cerinţa

Să se afișeze matricea obținută prin interschimbarea în matricea dată a liniei care conține valoarea maximă cu linia care conține valoarea minimă


Date de intrare

Fişierul de intrare interschimbarelinii.in conţine pe prima linie numerele n și m, iar pe următoarele n linii câte m numere naturale diferite.


Date de ieşire

Fişierul de ieşire interschimbarelinii.out va conţine matricea transformată, câte o linia matricei pe o linie a fișierului, elementele de pe fiecare linie fiind separate printr-un spațiu..


Restricţii şi precizări

1 ≤ n,m ≤ 25

numerele matricei vor fi mai mici decât 10000


Exemplu

interschimbarelinii.in


4 6

8 33 35 28 20 10

23 17 24 6 22 31

15 25 12 43 27 13

21 3 19 29 5 30

interschimbarelinii.out


8 33 35 28 20 10

23 17 24 6 22 31

21 3 19 29 5 30

15 25 12 43 27 13
C++ va rog , #193

Răspunsuri la întrebare

Răspuns de boiustef
1

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

short a[26][26];

int main()

{

   ifstream f("interschimbarelinii.in");

   ofstream g("interschimbarelinii.out");

   short n, m, i, j, num, linemin, linemax, min, max;

   f >> n >> m;

   f >> a[1][1]; min=a[1][1]; linemin=1; max=a[1][1]; linemax=1;

   for (j=2; j<=m; ++j)

   {

       f >> a[1][j];

       if (a[1][j]<min) { min=a[1][j]; linemin=1; }

       if (a[1][j]>max) { max=a[1][j]; linemax=1; }

   }

   for (i=2; i<=n; ++i)

   {

     for (j=1; j<=m; ++j)

   {

       f >> a[i][j];

       if (a[i][j]<min) { min=a[i][j]; linemin=i; }

       if (a[i][j]>max) { max=a[i][j]; linemax=i; }

   }

   }

   for (j=1; j<=m; ++j)

   {

       num=a[linemax][j]; a[linemax][j]=a[linemin][j]; a[linemin][j]=num;

   }

  for (i=1; i<=n; ++i)

  {

      for (j=1; j<=m; ++j)

        g << a[i][j] << " ";

      g << "\n";

  }

   return 0;

}

Explicație:

Alte întrebări interesante