|
|||||||
|
|
|
![]() |
|
|
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 19: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: 15:47.




















