Abbi pazienza....sono proprio dura!!!

Ho modificato così il codice...ma non va bene!!

codice:
while (fread(&s, sizeof(Studente), 1, fp)>0) { 
          
          if ((f = fopen("Esami.dat", "rb")) == NULL) {
              fprintf(stderr, "Errore di apertura 2\n");
              exit(2);
              }
          if (strcmp(citta,s.Citta)==0) {
                                       
          while (fread(&e, sizeof(Esame), 1, f)>0) { 
          fread(&e, sizeof(Esame), 1, f);
          
          if (s.Matr == e.Matr) {
            trovatoEsame = 1;
      
            do {esami++;} while (s.Matr != e.Matr);
            do {somma = somma + calcolaSomma(e.Voto);} while (s.Matr != e.Matr);
            media = calcolaMedia(somma, esami);}}
         
         if (trovatoEsame)
         printf("%d    %s    %d      %d\n\n", s.Matr, s.Nome, esami, media);
         }
         fclose(f); 
         }    
      
     fclose(fp);
Non ho capito come lo devo modificare!