Ci ho dato solo un occhio veloce, ma secondo me il problema è nel ciclo while:
Nell'ultima riga tu copi solo il numero di vittorie, mentre dovresti anche fare in modo di copiare il numero della squdra, perchè altrimenti i numeri di vittorie si aggiornano ma quelli delle squadre si sovrappongono!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;
}
Secondo me potresti rimediare mettendo all'inizio del ciclo for, una cosa del tipo:
in modo da tener traccia del numero della squadra che stai analizzando e da poterlo copiare nella sua posizione definitiva alla fine, facendo:codice:int oldNum = (s + i)->numero;
Potrebbe essere? Sappimi dire se vacodice:(s + j + 1)->numero = oldNum;![]()