1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
#include <stdio.h>
#include <stdlib.h>
typedef struct s_etudiant
{
char mat[10] ;
char nom[20];
char prenom[20];
float *tmoy;
float moyg;
} etudiant;
// LE PROBLEME ETAIT JUSTE EN DESSOUS
void saisir(etudiant *tab , int n );
int calcul_moyg(etudiant *tab , int n1, int n );
int main()
{
int n, n1, i, j;
etudiant *tab;
printf("entrer le nombre d'etudiant: ");
scanf("%d",&n);
tab = malloc(n * sizeof(etudiant));
saisir(tab, n);
calcul_moyg(tab, n1, n);
return(0);
}
void saisir(etudiant *tab, int n)
{
int n1, i, j;
float s;
for(i=0; i<n; i++)
{
printf("\nentrer la matricule de l etudiant: \t");
scanf("%s", tab[i].mat);
printf("Entrer le nom de l etudiant: \t ");
scanf("%s", (tab+i)->nom);
printf("entrer la prenom de l etudiant: \t" );
scanf("%s", (tab+i)->prenom);
printf("entrer le nombre de matiere de %s:\t",(tab+i)->prenom);
scanf("%d", &n1);
tab->tmoy = malloc(n1 * sizeof(float));
for(j=0; j<n1; j++)
{
printf(" note matiere n°%d =\t", j);
scanf("%f", (tab+i)->tmoy+j);
}
}
}
int calcul_moyg(etudiant *tab ,int n1, int n)
{
float s = 0;
int i, j;
for(i=0; i<n; i++)
for(j=0; j<n1; j++)
s += *(tab+i)->tmoy+j;
(tab+i)->moyg = s / n1;
printf("la moy generale est: %f", (tab+i)->moyg);
return (0);
} |
Partager