99 lines
2.5 KiB
C
99 lines
2.5 KiB
C
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
|
|
/* ---- 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
|
|
}
|