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

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 CinevaFaraNume
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?
CinevaFaraNume: STL = Standard Template Library. Se refera la toate functiile standard ale limbajului cu template-uri. sort este o functie din STL
sikesjack1: am inteles. si cmp ce face?
CinevaFaraNume: Cmp este o functie care compara doua numere. rezultatul functiei cmp ii spune algoritmului din sort daca primul numar trebuie sa apara inaintea celui de al 2-lea
sikesjack1: multumesc!
Alte întrebări interesante