Advertisement
azizkhelifi

TP.c

Dec 15th, 2020
809
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.55 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. struct date
  5. {
  6.     int jour;
  7.     int mois;
  8.     int annee;
  9. };
  10. typedef struct date DATE;
  11. struct etudiant
  12. {
  13.     int ce;
  14.     char nom[20];
  15.     DATE dateNaiss;
  16.     int nbNotes;
  17.     float *notes;
  18.     float moyenne;
  19. };
  20. typedef struct etudiant ETUDIANT;
  21.  
  22. void main(){
  23.     int n,somme = 0;
  24.     ETUDIANT *tab;
  25.     printf("Donner le nombre d'etudiants : ");
  26.     scanf("%d",&n);
  27.     tab = (ETUDIANT *)malloc(n*sizeof(ETUDIANT));
  28.     for (int j = 0; j<n; j++){
  29.         printf("\n -- Etudiant %d --\n\n",j+1);
  30.         printf("CE : ");
  31.         scanf("%d",&(tab+j)->ce);
  32.         printf("Nom : ");
  33.         scanf("%s", (tab+j)->nom);
  34.         printf("Date de naissance [JJ,MM,AAAA]:");
  35.         scanf("%d%d%d", &(tab+j)->dateNaiss.jour, &(tab+j)->dateNaiss.mois, &(tab+j)->dateNaiss.annee);
  36.         printf("Nombre de notes: ");
  37.         scanf("%d", &(tab+j)->nbNotes);
  38.         (tab+j)->notes = (float *)malloc(((tab+j)->nbNotes) * sizeof(float));
  39.         for(int i=0; i<(tab+j)->nbNotes;i++){
  40.             printf("Notes %d:",i+1);
  41.             scanf("%f",(tab+j)->notes +i);
  42.             somme+= *((tab+j)->notes +i);
  43.         }
  44.  
  45.    
  46.         (tab+j)->moyenne = somme/(tab+j)->nbNotes;
  47.         somme = 0;
  48.     }
  49.     for (int j = 0; j<n; j++)
  50.     {
  51.         printf("\n\n------ \n\n");
  52.         printf("Etudiant %d:\n\tNom:%s\n\tCE: %d\n\tDate de naissance: %d/%d/%d\n\tNombre de notes: %d",j+1,(tab+j)->nom, (tab+j)->ce, (tab+j)->dateNaiss.jour,(tab+j)->dateNaiss.mois,(tab+j)->dateNaiss.annee,(tab+j)->nbNotes);
  53.         for(int i =0; i<(tab+j)->nbNotes;i++){
  54.             printf("\n\t\tNote %d: %.2f",j+1,*((tab+j)->notes+i));
  55.         }
  56.         printf("\n\tMoyenne: %.2f",(tab+j)->moyenne);
  57.  
  58.     }
  59.  
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement