L'istruzione
è corretta.fscanf(fp,"%d%f%f", &voti[i].matricola, &voti[i].votoIprova, &voti[i].votoIIprova);
prova a scrivere voti.txt (con ad es. notepad) così:
7
8.2
9.4
5
3.4
5.6
cioè dopo ogni numero premi invio (non hai bisogno di specificare "\n" nel fscanf.
Ciao