/* Nome: Mario Cognome: Montanari Classe: 3AIN Data: 17/04/2025 es11: Dopo aver completato la struttura dati studente, scrivi la funzione inserisciMedia() che legga un file binario contenente i dati di tutti gli studenti di una classe, privi della media dei voti riportati, e lo aggiorni inserendo nell'apposito campo la media suddetta. La funzione dovrà a sua volta far uso di un'ulteriore, appropriataa, funzione che calcoli la media. */ #include #define SIZE_VOTI 100+1 typedef struct { int voti[SIZE_VOTI]; int numeroVoti; float media; } Studente; void inserisciMedia(const char * file_open); float calcolaMedia(int * voti, int numeroVoti); int main(void) { inserisciMedia("studenti.dat"); return 0; } void inserisciMedia(const char * file_open) { FILE * file = fopen(file_open, "r+b"); if (file != NULL) { Studente studente; while (fread(&studente, sizeof(studente), 1, file) == 1) { studente.media = calcolaMedia(studente.voti, studente.numeroVoti); fseek(file, -(long)sizeof(studente), SEEK_CUR); fwrite(&studente, sizeof(studente), 1, file); } fclose(file); } else { perror("Error (source)"); } } float calcolaMedia(int * voti, int numeroVoti) { float media = 0; if (numeroVoti == 0) { return 0; } for (int i = 0; i < numeroVoti; i++) { media = media + voti[i]; } media = media / numeroVoti; return media; }