/* ordina una matrice quadrata, con indice dispari, in modo crescente, riscrivendola in modo elecoidale */ /* Il listato per vari motivi non è stato testato e per tale motivo è da ritenersi al solo scopo didattico; l'autore non si assume responsabilità su possibili malfunzionamenti */ #include typedef int matrice [11][11]; typedef int vettore [121]; void leggi(matrice m,int d); void trasforma(matrice m,vettore v,int d); void ordina(vettore v,int d); void elecoidale(matrice m,vettore v,int d); void visualizza(matrice m,int d); main() { int i,j,d,rip; matrice m; vettore v; do { cout<<"\n **matrice elecoidale v.1**"; cout<<"\n powered by EnzoCap"; do { rip=0; cout<<"\n"; cout<<"\n Definisci le dimensioni della matrice :"; cout<<"\n [il numero (<12) deve essere dispari] "; cin>>d; if(d%2==0) { cout<<"\n ERRORE! Il numero che hai inserito è pari."; rip=1; } if(d>=12) { cout<<"\n ERRORE! Il numero che hai inserito è >= di 12."; rip=1; } } while(rip==1); leggi(m,d); cout<<"\n MATRICE INSERITA"; visualizza(m,d); trasforma(m,v,d); ordina(v,d); elecoidale(m,v,d); cout<<"\n MATRICE ORDINATA"; visualizza(m,d); cout<<"\n Vuoi continuare ancora?"; cout<<"\n si=1 no=altro : "; cin>>rip; } while(rip==1); } void leggi(matrice m,int d) { int i,j; for(i=0;i>m[i][j]; } } } void visualizza(matrice m,int d) { int i,j; cout<<"\n i valori contenuti nella matrice sono:"; for(i=0;iv[j+1]) { mem=v[j]; v[j]=v[j+1]; v[j+1]=mem; } } n=n-1; } } void elecoidale(matrice m,vettore v,int d) { int i,j,k,x,y,p,h; k=d-1; p=d-1; y=0; x=0; do { for(i=0;i