Bonsoir,

Je me permet de vous poser une question concernant mon code dont l'objectif est de saisir pour un certain nombre d'étudiant, leurs nom et prénom ainsi que 3 notes. Le programme a la fin affiche les coordonnées de chaque étudiant avec leurs nom, prénom, leurs notes et la moyenne.
Or je viens débuter il y a peu en C et je ne comprend pas du tout où se trouve le problème dans la saisie de mes coordonnées ....le programme ne me laisse pas saisir le nom du premier étudiant. De plus lors de l'affichage, le nom et prénom de l'étudiant s'affiche mal sans que je n'arrive à comprendre mon erreur.

Merci d'avance pour l'aide que vous pourrez m'apporter.

Bonne soirée à vous.

voici mon programme :
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
 
#include <stdio.h>
#define nmax 30
 
 
//-----------------------
// Fonction saisir le nombre d'étudiant
//-----------------------
int saisir_nombre_etudiant()
{
    int a ;
  do{
    printf(" donner un nombre entre 1 et %d:",nmax );
    scanf("%d",&a);
 }while(a<=0 || a>=nmax );
    return(a);
}
//-----------------------
// procédure saisir coordonnées
//-----------------------
void saisir_coordonnes(int a, char nom[a][30], char prenom[a][30], char id[a][61])
{
    int i;
    for (i = 0; i < a; i++) {
        printf("\nNom : ");
        gets(nom[i]);
 
        printf("\nPrenom : ");
        gets(prenom[i]);
        strcpy(id[i] , prenom[i] ) ;
        strcat(id[i] , " " );
        strcat(id[i], nom[i]);
}}
//-----------------------
// procédure saisir notes
//-----------------------
void saisir_notes ( int note1[nmax], int note2[nmax], int note3[nmax],int a)
   {
 
    int i;
    for (i=0; i<a; i++)
    {
     printf("\n saisir les notes de l'etudiant %d :", i+1);
     printf("\nnote 1 :");
     scanf("%d",&note1[i]);
 
     printf("\nnote 2 :");
     scanf("%d",&note2[i]);
 
     printf("\nnote 3 :");
     scanf("%d",&note3[i]);
    }
 
   }
//-----------------------
// procédure moyenne
//-----------------------
 
void moyenne_tableau (int note1[nmax],int note2[nmax],int note3[nmax], int a ,float moy[nmax])
{
    int i;
    for ( i=0; i<a ; i++)
        moy[i]=((float)note1[i]+(float)note2[i]+(float)note3[i])/3;
 
}
 
//-----------------------
// Procedure afficher tableau
//-----------------------
void afficher_tableau (int note1[nmax],int note2[nmax], int note3[nmax],int a,float moy[nmax], char id[a][30] )
{
    int i ;
    printf("\nLes relevé de notes des éleves :\n : ");
    for ( i=0; i<a; i++)
    {
        printf("\n----------------------");
        printf(" \netudiant n°%d : %s ",i+1,id[i]);
        printf("\n----------------------");
 
        printf("\nnote 1 : %d",note1[i]);
        printf("\nnote 2 : %d",note2[i]);
        printf("\nnote 3 : %d",note3[i]);
        printf("\n----------------------");
        printf(" \nmoyenne :%f ", moy[i]);
 
    }
 
}
main(){
int note1[nmax],note2[nmax],note3[nmax],a;
float moy[nmax];
char nom[a][30] ,prenom[a][30],id[a][61];
a=saisir_nombre_etudiant();
saisir_coordonnes(a, nom, prenom,id);
 
saisir_notes(note1, note2, note3, a);
 
moyenne_tableau(note1, note2, note3, a, moy);
 
afficher_tableau(note1, note2, note3, a, moy, id);
 
}