/ Remplissage et affichage d’un tableau dynamique de n étudiants (3 pages)/
#include<stdio.h>
#include<stdlib.h>
struct date
{
int jour;
int mois;
int annee;
};
typedef struct date DATE;
struct etudiant
{
int ce;
char nom[20];
float notes[5];
DATE date_naiss;
float moy;
};
typedef struct etudiant ETUDIANT;
//
ETUDIANT *allocation(int n)
{
ETUDIANT *tab;
tab=(ETUDIANT ) malloc( n sizeof(ETUDIANT));
if(!tab) exit(-1);
return tab;
}
//
Advertisement
void allocation2(ETUDIANT **m, int n)
{
m=(ETUDIANT ) malloc( n * sizeof(ETUDIANT));
if(!*m) exit (-1);
}
//
void remplir_notes(float *t)
{
int i;
for (i=0; i<5; i++)
scanf("%f", t+i);
}
//
void afficher_notes(float *t)
{
int i;
for (i=0; i<5; i++)
printf("%f", *(t+i));
}
Mme Wiem Yaiche Elleuch tableau dynamique de n étudiants
Page 1
float calcul_moy(float *t)
{
float s=0.0;
int i;
for (i=0; i<5; i++)
s+= *(t+i);
return(s/5);
Advertisement
}
//
void calcul_moy2(float t, float m)
{
float s=0.0;
int i;
for (i=0; i<5; i++)
s+= *(t+i);
*m=s/5;
}
//
ETUDIANT remplir_un_etudiant ()
{
ETUDIANT e;
printf("saisir ce, nom ");
scanf("%d%s", &e.ce, e.nom);
printf("saisir les notes");
remplir_notes(e.notes);
printf("saisir date naissance ");
scanf("%d%d%d", &e.date_naiss.jour, &e.date_naiss.mois, &e.date_naiss.annee );
e.moy=calcul_moy(e.notes);
//ou bien
return e;
calcul_moy2 (e.notes, &e.moy);
}
//
void remplir_un_etudiant2 (ETUDIANT *e)
{
Advertisement
printf("saisir ce, nom ");
scanf("%d%s", &e->ce, e->nom);
printf("saisir les notes");
remplir_notes(e->notes);
printf("saisir date naissance ");
scanf("%d%d%d", &e->date_naiss.jour, &e->date_naiss.mois, &e->date_naiss.annee );
e->moy=calcul_moy(e->notes);
//ou bien
}
calcul_moy2 (e->notes, &e->moy);
Mme Wiem Yaiche Elleuch tableau dynamique de n étudiants
Page 2
void afficher_un_etudiant (ETUDIANT e)
{
printf(" ce, nom ");
printf("%d%s", e.ce, e.nom);
printf(" les notes ");
afficher_notes(e.notes);
printf("date naissance ");
printf("%d%d%d", e.date_naiss.jour, e.date_naiss.mois, e.date_naiss.annee );
printf("%f", e.moy);
}
/**/
void remplir_tab(ETUDIANT *t,int n)
{
int i;
for(i=0; i<n; i++)
*(t+i)= remplir_un_etudiant();
Advertisement
//ou bien remplir_un_etudiant2(t+i);
}
/**/
void afficher_tab(ETUDIANT *t,int n)
{
int i;
for(i=0; i<n; i++)
afficher_un_etudiant(*(t+i));
}
//
void main()
{
int n;
ETUDIANT *tab;
printf("saisir nbre d'etudiants");
scanf("%d", &n);
tab=allocation(n);
//ou bien allocation2 (&tab, n);
remplir_tab(tab,n);
afficher_tab(tab,n);
free(tab);
}
Mme Wiem Yaiche Elleuch tableau dynamique de n étudiants
Page 3