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

#769 OrdCol

Cerinţa
Se dă o matrice cu n linii şi m coloane şi elemente numere naturale. Să se ordoneze coloanele matricei astfel încât elementele de pe prima linie să fie ordonate crescător.

Date de intrare
Programul citește de la tastatură numerele n şi m, iar apoi n*m numere naturale, separate prin spaţii, reprezentând elementele matricei, linie cu linie.

Date de ieşire
Programul afișează pe ecran elementele matricei transformate, câte un linie a matricei pe o linie a ecranului, elementele de pe o linie fiind separate prin câte un spațiu.

Restricţii şi precizări
1 ≤ m,n ≤ 100
elementele matricei vor fi mai mici decât 1000000



Exemplu
Date de intrare

4 6
4 20 15 23 18 9
1 8 23 22 14 18
17 15 13 18 12 15
3 18 8 20 12 5
Date de ieșire

4 9 15 18 20 23
1 18 23 14 8 22
17 15 13 12 15 18
3 5 8 12 18 20

Răspunsuri la întrebare

Răspuns de boiustef
5

#include <iostream>

using namespace std;

int a[101][101];

int main()

{

   int n, m, i, j, t, schimb;

   cin >> n >> m;

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

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

           cin >> a[i][j];

   do

   {

       schimb=0;

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

       if (a[1][j]>a[1][j+1])

           {

              schimb=1;

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

              {

                t=a[i][j]; a[i][j]=a[i][j+1]; a[i][j+1]=t;

              }

           }

   }

   while (schimb);

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

   {

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

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

       cout << "\n";

   }

   return 0;

}

Alte întrebări interesante