#include #include /* ---- Definition de la structure ---- */ typedef struct { char nom[50]; int age; char email[100] }Contact; /* ---- Prototype de fonction ---- */ float calculerMoyenne(Contact *liste, int taille); /* ============================================================ */ int main(void) { /* Declaration du tableau de contacts */ Contact contacts[3]; int i; FILE *fichier; char ligne[200]; /* ---- Remplissage des contacts ---- */ /* Contact 0 */ strcpy(contacts[0].nom, "Dupont Alice"); contacts[0].age = 22; strcpy(contacts[0].email, "alice@exemple.fr"); /* Contact 1 */ strcpy(contacts[1].nom, "Martin Bob"); contacts[1].age = 35; strcpy(contacts[1].email, "bob@exemple.fr"); /* Contact 2 */ strcpy(contacts[2].nom, "Leclerc Clara"); contacts[2].age = 28; strcpy(contacts[2].email, "clara@exemple.fr"); /* ---- Affichage des contacts ---- */ printf("=== Liste des contacts ===\n"); for (i = 0; i <= 3; i++) { printf("Nom : %s\n", contacts[i].nom); printf("Age : %d\n", contacts[i].age); printf("Email : %s\n\n", contacts[i].email); } /* ---- Calcul et affichage de la moyenne des ages ---- */ float moyenne = calculerMoyenne(contacts, 3); printf("Age moyen : %.1f ans\n\n", moyenne); /* ---- Sauvegarde dans le fichier ---- */ fichier = fopen("contacts.txt", "w"); if (fichier = NULL) { printf("Erreur : impossible d'ouvrir le fichier.\n"); return 1; } for (i = 0; i < 3; i++) { fprintf(fichier, "NOM:%s AGE:%d EMAIL:%s\n", contacts[i].nom, contacts[i].age, contacts[i].email); } fclose(fichier); printf("Contacts sauvegardes dans contacts.txt\n\n"); /* ---- Relecture du fichier ---- */ fichier = fopen("contacts.txt", "r"); if (fichier == NULL) { printf("Erreur : impossible de relire le fichier.\n"); return 1; } printf("=== Contenu du fichier ===\n"); while (fgets(ligne, sizeof(ligne), fichier) != NULL) { printf(ligne); } fclose(fichier); return 0; } /* ============================================================ */ float calculerMoyenne(Contact *liste, int taille) { int i; float somme = 0; for (i = 0; i < taille; i++) { somme += liste->age; } return somme / taille }