Dovrei scrivere una funzione che mi permetta di stampare a video una matrice,ordinando le sue righe in modo decrescente rispetto ai valori delle loro somme.
Ho provato in questo modo(e ovviamente non funziona xD)
codice:
// R è il vettore che contiene la somma delle righe
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
if(R[i]<R[i+1])
{ int tmp;
tmp=x[i][j];
x[i][j]=x[i+1][j];
x[i+1][j]=tmp;
}
cout << x[i][j] << " ";}
e capisco anche qual è il problema(cioè che in questo modo se una riga deve "salire di due o più posti" non può farlo) e ho provato a risolverlo facendo un ciclo while che racchiuda il doppio ciclo for con condizione(R
<R[i+1]),ma in questo modo mi stampa matrici all'infinito,come se non fosse mai soddisfatta la condizione...ma non capisco il perchè,visto che dovrebbero bastare due doppi cicli for per ordinarla(la matrice è
5 6 1 25
10 22 2 12
55 11 3 1 )
P.S. ho già controllato che la somma delle righe sia stata effettuata correttamente