Buongiorno a tutti!
Ho un problema con un algoritmo che dovrebbe ordinare un array di oggetti di classe team;
la classe team, oltre ad avere una serie di variabili al suo interno, contiene anche un ulteriore array di oggetti di classe player(questo però non è da ordinare).
Come potete immaginare, il programma deve prendere un array contenente i dati di 8 squadre di calcio e metterle in ordine in base al loro punteggio e, se due squadre sono a pari punteggio, in base alla differenza reti.
Per motivi vari non posso usare funzioni sort e/o qsort e compagnia.
Il codice che ho scritto è questo:
codice:
#define N 8
#define P 10
team pl_team[N];
void PassaSquadra(int a)
{
int e;
team tester;
tester.nome = pl_team[a].nome;
tester.gf = pl_team[a].gf;
tester.gs = pl_team[a].gs;
tester.pv = pl_team[a].pv;
tester.pp = pl_team[a].pp;
tester.pn = pl_team[a].pn;
for(e=0; e<P; e++)
{
tester.giocatore[e].nome = pl_team[a].giocatore[e].nome;
tester.giocatore[e].goal = pl_team[a].giocatore[e].goal;
}
pl_team[a].nome = pl_team[a-1].nome;
pl_team[a].gf = pl_team[a-1].gf;
pl_team[a].gs = pl_team[a-1].gs;
pl_team[a].pv = pl_team[a-1].pv;
pl_team[a].pp = pl_team[a-1].pp;
pl_team[a].pn = pl_team[a-1].pn;
for(e=0; e<P; e++)
{
pl_team[a].giocatore[e].nome = pl_team[a-1].giocatore[e].nome;
pl_team[a].giocatore[e].goal = pl_team[a-1].giocatore[e].goal;
}
pl_team[a-1].nome = tester.nome;
pl_team[a-1].gf = tester.gf;
pl_team[a-1].gs = tester.gs;
pl_team[a-1].pv = tester.pv;
pl_team[a-1].pp = tester.pp;
pl_team[a-1].pn = tester.pn;
for(e=0; e<P; e++)
{
pl_team[a-1].giocatore[e].nome = tester.giocatore[e].nome;
pl_team[a-1].giocatore[e].goal = tester.giocatore[e].goal;
}
}
Questa è la funzione, che dovrebbe, dato un indice a, scambiare di posto l'oggetto di posto [a] con l'oggetto di posto [a-1]; N è il numero di squadre e P il numero di giocatori massimo per squadra (squadre da 5 più riserve))