Bonjour,
je suis en trin d'apprendre à utiliser les structures en langage C et je bloque sur ce programme.

Le programme doit demander le nom, prénom, adresse, age et sexe, le stocker dans une structure "Personne" qui est elle même stocker dans un tableau.

Le problème c'est que j'obtiens l'erreur suivante à la compilation :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
structure.c: In function ‘main’:
structure.c:9: error: expected expression before ‘]’ token
structure.c:10: error: expected expression before ‘]’ token
A mon avis cela provient certainement de la variable tableau[] situé dans les deux appels de fonction mais je ne sais vraiment pas comment résoudre ce problème.


Dans le .C :

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
 
#include <stdlib.h>
#include <stdio.h>
#include "structure.h"
 
int main()
{
    Personne tableau[2] = {0}; 
    int i = 0, tailleTableau = 2;
    ecrireTableau(tableau[], tailleTableau);
    afficherTableau(tableau[], tailleTableau);
}
 
//Fonction permettant d'afficher le contenu du tableau
void afficherTableau(Personne tableau[],int tailleTableau)
{
    int i = 0;
    for (i = 0; i < tailleTableau; i++)
    {
        printf("Nom : %s \n",tableau[i].nom);
        printf("Prenom : %s \n",tableau[i].prenom);
        printf("Adresse : %s \n",tableau[i].adresse);
        printf("Age : %d ans \n",tableau[i].age);
        printf("%d \n",tableau[i].sexe);
        if (tableau[i].sexe == 1)
        {
            printf("Sexe : homme \n");
        }
        else if (tableau[i].sexe == 0)
        {
            printf("Sexe : femme \n");
        }
        else
        {
            printf("Sexe ? \n");
        }
    } 
}
 
//Fonction permettant d'insérer des valeurs dans le tableau 
void ecrireTableau(Personne tableau[],int tailleTableau)
{
    int i = 0;
    for (i = 0; i < tailleTableau; i++)
    {
        printf("Veuillez entrer votre nom : \n");
        scanf("%s",tableau[i].nom);
        printf("Veuillez entrer votre prenom : \n");
        scanf("%s",tableau[i].prenom);
        printf("Veuillez entrer votre adresse : \n");
        scanf("%s",tableau[i].adresse);
        printf("Veuillez entrer votre age : \n");
        scanf("%d",&tableau[i].age);
        printf("Veuillez entrer votre sexe (1 pour homme et 0 pour femme) : \n");
        scanf("%d",&tableau[i].sexe);
    }
}

Et dans le .h :

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
#ifndef DEF_STRUCTURE
#define DEF_STRUCTURE
#define TAILLE 100
 
typedef struct Personne Personne;
struct Personne
{
    char nom[TAILLE];
    char prenom[TAILLE];
    char adresse[TAILLE];
    int age;
    int sexe;
 
};
 
void afficherTableau(Personne tableau[],int tailleTableau);
void ecrireTableau(Personne tableau[], int tailleTableau);
 
 
#endif
Vous auriez une idée ?

Merci par avance :-)