Buna!
Ma puteti ajuta la problema SortCol de pe pbinfo?
#620 SortCol
Etichete: nicio etichetă
Enunț
Soluții
Cerinţa
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
Multumesc!
Răspunsuri la întrebare
Răspuns de
1
Răspuns:
#include <iostream>
#include <algorithm>
using namespace std;
unsigned short A[100][100];
bool cmp(unsigned short a, unsigned short b){return a > b;}
int main(){
int n,m;
cin >> n >> m;
for(int i = 0; i < n; i++)
for(int j = 0; j < m; j++)
cin >> A[j][i];
for(int j = 0; j < m; j++)
sort(&A[j][0], &A[j][n], cmp);
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++)
cout << A[j][i]<<' ';
cout << '\n';
}
}
Explicație:
Poti transforma randurile in coloane si coloanele in randuri. Astfel, trebuie doar sa sortezi randurile(merge si STL sort) si apoi sa afisezi inapoi matricea.
sikesjack1:
Am inteles, multumesc! STL si sort, sunt functii?
Alte întrebări interesante