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:
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))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; } }