Informatică, întrebare adresată de Istefan, 9 ani în urmă

Cerinţa
Se dă o matrice cu n linii şi m coloane şi elemente numere naturale. Să se ordoneze liniile matricei crescător după suma elementelor.

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 1.000.000

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

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

Răspunsuri la întrebare

Răspuns de alesyo
51
#include <iostream>
 using namespace std;
int main()
{ int a[101][101],s[101],m,n;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>a[i][j];
for(int i=1;i<=n;i++)
{ int sum=0;
for(int j=1;j<=m;j++)
sum=sum+a[i][j]; s[i]=sum; } for(int i=1;i<n;i++) for(int j=i+1;j<=n;j++) if(s[i]>s[j]) { int aux=s[i]; s[i]=s[j]; s[j]=aux; for(int k=1;k<=m;k++) { aux=a[i][k]; a[i][k]=a[j][k]; a[j][k]=aux; } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) cout<<a[i][j]<<' '; cout<<endl; } return 0; }

Alte întrebări interesante