|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jul 2006
Messaggi: 96
|
[C] Algoritmo ordinamento
Salve , dovrei ordinare una struct ma non so come passarla nella function che ordina i parmetri.
Il mio problema sta nell 'ordinare in ordine decrescente di vittorie le squadre, e stamparne i nomi . Avevo scritto questo codice che mi permette di ordinare le vottorie della squadra essendo solo un array ad entrare come argomento e copiando i dati strutturati in un array semplice: Codice:
struct _squadra { int numero /*nome della squadra identificata da un numero */; int numvittoriesquadra; }; typedef struct _squadra Squadra; void order_ins (int array[], int n) { int i,j; int el_da_ins; j=j-i; for (i=1;i<n;i++) { el_da_ins=array[i]; j= i-1; while (j>=0 && el_da_ins < array[j]) { array[j+1] = array[j]; j--; } array[j+1] = el_da_ins; } main { /*copio le vittorie in un array /* for(i = 0; i <8; i++) { array_squadra[i].numvittoriesquadra = numvittoriesquadra[i];} /* chiamata all'array order_ins(numvittoriesquadra,lung_numvittorie); ![]() |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Dec 2006
Messaggi: 314
|
Quote:
Codice:
void sort( Squadra * s); Codice:
int num = s->numero
__________________
Athlon64 x2 5600 - AsRock ALiveNF5eSata2+ - kingston 2GB ddr2 800 - GeForce 8800gts 320MB Ultima modifica di Rsk : 15-07-2010 alle 18:10. |
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jul 2006
Messaggi: 96
|
Grazie ! modificato il codice ora :
Codice:
void order_ins (Squadra *s, int n) { int i,j; int el_da_ins; j=j-i; for (i=1;i<n;i++) { el_da_ins=(s+i)->numvittoriesquadra; j= i-1; while (j>=0 && el_da_ins < (s+j)->numvittoriesquadra) { (s+j+1)->numvittoriesquadra = (s+j)->numvittoriesquadra; (s+j+1)->numero = (s+j)->numero; j--; } (s+j+1)->numvittoriesquadra = el_da_ins; } } Array non ordinato squadra: n =8 vittorie = 0 squadra: n =9 vittorie = 1 squadra: n =10 vittorie = 0 squadra: n =11 vittorie = 2 squadra: n =12 vittorie = 0 squadra: n =13 vittorie = 1 squadra: n =14 vittorie = 0 squadra: n =15 vittorie = 3 Squadre In ordine Crescente di vittoria squadra: n =8 vittorie = 0 squadra: n =9 vittorie = 0 squadra: n =9 vittorie = 0 squadra: n =9 vittorie = 0 squadra: n =9 vittorie = 1 squadra: n =11 vittorie = 1 squadra: n =11 vittorie = 2 squadra: n =15 vittorie = 3 pare che mentre le vittorie si ordino c'è qualche problema con array_squadra.numero ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:06.