PDA

View Full Version : Programmiamo in C... Matrice in vettore???


Tabbozzo87
05-10-2005, 10:31
Problema:

Ho un matrice m[i][j] e la devo immettere in un vettore vet[?]...
Per poi ordinarla in modo crescente e decrescente..
Come faccio? :help:

La matrice è di n elementi decisi da chi avvia il programma... se è 3x3 in pratica devo far visualizzare i 9 elenti in fila in un vettore...
Spero di essere stato chiaro..
Grazie risp subito please...

Ziosilvio
05-10-2005, 11:03
Ho un matrice m[i][j] e la devo immettere in un vettore vet[?]...
Per poi ordinarla in modo crescente e decrescente..
Come faccio? :help:
Se sai il numero di righe e di colonne della matrice, allora sai anche quanti elementi deve avere il vettore.
E poi: la matrice va inserita nel vettore una riga alla volta, una colonna alla volta, o in qualche altro modo?
E per finire: ordinare rispetto a cosa?

Tabbozzo87
05-10-2005, 11:31
Il numero è inserito da chi usa il programma... la matrice deve essere messa in modo crescente o decrescente, non importa come... deve risultare essere una unica riga con i numeri posi in modo crescente o decrescente... dimenticavo.. i numeri sono random...

Ziosilvio
05-10-2005, 11:44
Il numero è inserito da chi usa il programma
Quindi, nel momento in cui devi riorganizzare la matrice e inserirla in un vettore, sai quanti sono.
la matrice deve essere messa in modo crescente o decrescente, non importa come... deve risultare essere una unica riga con i numeri posi in modo crescente o decrescente... dimenticavo.. i numeri sono random...
OK, un esercizio abbastanza standard sui cicli annidati e gli algoritmi di ordinamento.
Potresti prima inserire la matrice nel vettore, una riga alla volta, e poi ordinare il vettore; oppure potresti inserire nel vettore gli elementi della matrice, uno alla volta, tenendo via via ordinato quello che hai già inserito.
In ciascuno dei due casi devi usare cicli for e aritmetica modulare.
Buon lavoro.

cionci
05-10-2005, 15:23
Per una matrice NxM con i che va da 0 a N-1 e j che va da 0 a M-1 puoi inserire la matrice in questo modo:

int *matrice = (int *) malloc ( sizeof(int) * N * M);

Per accedere all'elemento (i, j) della matrice puoi fare in questo modo:

matrice[M*j + i]

Dopo l'inserimento effettui l'ordinamento...