Bonjour, Je programme en C depuis peu de temp et j'essaie de coder un petit programme en c qui affiche le nom, prénom, l'âge des élèves d'une classe ainsi que leur notes scolaires et la moyenne de celles-ci. Mon problème et, que je ne trouve pas comment on fais la somme des notes de chaque élèves dans le champ notes d'un tableau de structure, et ensuite afficher la moyenne de cette somme.

Voici le code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <stdio.h>
#include <string.h>
 
#define TAILLE_NOM 10
#define TAILLE_PRENOM 2*TAILLE_NOM
#define NB_NOTES 5
#define MAX_ETUDIANTS 50
 
main()
{
  int i,j, nbelements, nbeleves,finir_saisie ;
 
 
  /* declaration du type etudiant */
  struct etudiant {
                    char nom[TAILLE_NOM]       ;
                    char prenom[TAILLE_PRENOM] ;
                    float notes[NB_NOTES];
                    float somme[NB_NOTES];
                    int age;                  
                  } ;
 
  /* declaration du tableau des eleves */
  struct etudiant tab_eleves[MAX_ETUDIANTS];
 
  /* === DEBUT DU PROGRAMME === */
  i=0;
  finir_saisie=0;
  /* boucle de saisie */
  while (! finir_saisie)
  {
   printf("Entrez un nom ( nom=fin   pour terminer):");
   scanf("%s",tab_eleves[i].nom);
 
   finir_saisie=((strcmp(tab_eleves[i].nom,"fin"))==0);
 
   /* si la saisie n'est pas finie */
   /* on demande le reste des informations */
   if (! finir_saisie)
   {   
     printf("Entrez un prénom:");
     scanf("%s",tab_eleves[i].prenom);
 
     printf("Entrez un âge:");
     scanf("%d",&tab_eleves[i].age);
 
     /* --- saisie des notes --- */
     printf("Entrez les %d notes :", NB_NOTES);
 
     for (j=0; j<NB_NOTES; j++)
     {
      scanf("%f", &tab_eleves[i].notes[j]);
      tab_eleves[i].somme[j] += tab_eleves[i].notes[j];
 
      /* --- calcul de la moyenne --- */
     tab_eleves[i].somme[j] /=  NB_NOTES;
     }  
     i++ ;
   }
   printf("\n");
  } 
 
 
  /* on met a jour la variable de controle du tableau */ 
  nbeleves = i ;
  nbelements = j;
 
  /* boucle de verification */
  printf("\n----- Vérification saisie ------\n");
 
  for (i=0; i<nbeleves; i++)
  {
     printf("\neleve %2d : ",i);
     printf("%10s %10s ",tab_eleves[i].nom,tab_eleves[i].prenom);
     printf("%2d \n", tab_eleves[i].age);
     printf("Notes :");
     for (j=0; j<NB_NOTES; j++)
      printf("%6.2f", tab_eleves[i].notes[j]);
      printf("\nMoyenne :");
      for (j=0; j<nbelements; j++)
      {
       printf("%6.2f", tab_eleves[i].somme[j]);
      }
      printf("\n");
  }
  printf("\n");
}
et voici ce que j'obtient comme résultat :

Entrez un nom ( nom=fin pour terminer):nom1
Entrez un prénom:prenom1
Entrez un âge:30
Entrez les 5 notes :10
12.5
15
15.5
20

Entrez un nom ( nom=fin pour terminer):nom2
Entrez un prénom:prenom2
Entrez un âge:35
Entrez les 5 notes :12
15
10
16
9

Entrez un nom ( nom=fin pour terminer):fin


----- Vérification saisie ------

eleve 0 : nom1 prenom1 30
Notes : 10.00 12.50 15.00 15.50 20.00
Moyenne : 2.00 2.50 3.00 3.10 4.00

eleve 1 : nom2 prenom2 35
Notes : 12.00 15.00 10.00 16.00 9.00
Moyenne : 2.40 3.00 2.00 3.20 1.80
Le résultat que j'aimerez obtenir et du genre : moyenne élève1 = 14,6 et moyenne1 élève2 = 12,4.

Quelqu'un pourrait-il m'indiqué ce qui foire dans mon code. Merci.