Scusate si può fare l'ordinamento di una matrice (C++) ? Ossia che con il primo elemento a[0][0] fosse il più piccolo e l'ultimo il più grande? come in un array unidimensionale.
Ad esempio:
A =
3 2 1
7 5 10
9 6 1
diventasse ==>
A =
1 1 2
3 5 6
9 7 10
Il codice l'ho scritto così ma non so se si può fare l'ordinamento:
#include <iostream>
using namespace std;
int main()
{
int a[3][3] = {3,2,1,7,5,10,9,6,1};
bool swapped = true;
while(swapped)
{
swapped = false;
for(int i = 0; i < 2; i++)
{
for(int j = 0; j < 2; j++)
{
if(a[i][j] > a[i+1][j+1])
{
swap(a[i][j],a[i+1][j+1]);
swapped = true;
}
}
}
}
cout <<"La matrice:\n";
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
cout << a[i][j] <<",";
}
cout <<"\n";
}
return 0;
}
Ovviamente in codice non restituisce quello che voglio.
Output:
1,2,1,
6,3,10,
9,7,5,
Grazie delle eventuali risposte.
Ps: Ah un 'ultima domanda. Non è possibile copiare una matrice dentro un array unidimensionale vero?