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))