SortCol

Se dă o matrice cu n linii şi m coloane şi elemente numere naturale. Ordonați descrescător elementele de pe fiecare coloană a matricei și apoi afișați matricea.

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 matricea modificată, câte o linie a matricei pe câte o linie a ecranului, elementele fiecărei linii 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 10000

Exemplu

Date de intrare

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

Date de ieșire

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

Rezolvare

#include <iostream>
using namespace std;

int a[101][101], n, m;

int main(){
    cin  >> n >> m;
    for (int i = 1 ;i <= n ; ++i)
        for(int j = 1 ; j <= m ; ++j)
            cin >> a[i][j];
    for(int j = 1 ; j <= m ; ++j)
        for(int i = 1 ; i < n ; ++i)
            for(int k = i + 1 ; k <= n ; ++k)
                if(a[i][j] < a[k][j])
                {
                    int aux = a[i][j];
                    a[i][j] = a[k][j];
                    a[k][j] = aux;
                }
    for (int i = 1 ;i <= n ; ++i){
        for(int j = 1 ; j <= m ; ++j)
            cout << a[i][j] << " ";
        cout << endl;
    }
    return 0;
}