Demande aide sur les structures

Résolu
nizarkhalloufi Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
nizarkhalloufi Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -
Salut, je viens de commencer a apprendre le langage c et j'essaie de faire quelques exercices simples sur les structures. j'ai écris ce code avec codeblocks et je sais pas pourquoi ça ne marche pas.
S'il vous plais est ce que quelqu'un peut m'expliquer pourquoi.

#include <stdio.h>
#include <stdlib.h>



typedef struct Personne Personne;
struct Personne
{
char nom[100];
char prenom[100];
char adresse[1000];
long age;
int garcon;
};
int main()
{
long i=0, j=0;
Personne utilisateur[4];
for(i=0 ; i<4 ; i++)
{
printf("Quel est votre nom ? ");
scanf("%s", utilisateur[i].nom);
printf("Votre prenom ? ");
scanf("%s", utilisateur[i].prenom);
printf("Votre adresse ? ");
scanf("%s", utilisateur[i].adresse);
printf("Votre age ? ");
scanf("%ld", utilisateur[i].age);
printf("Votre sex ?\n1.garcon\n2.fille\n");
scanf("%d", utilisateur[i].garcon);
while(utilisateur[i].garcon < 1 || utilisateur[i].garcon > 2)
{
printf("resseyez :");
scanf("%d", utilisateur[i].garcon);
}
if(utilisateur[i].garcon == 2)
utilisateur[i].garcon=0;
}
for(j=0 ; j<4 ; j++)
{
if(utilisateur[j].garcon)
printf("L'utilisateur n°%ld est un garcon appele %s %s qui habite a %s et qui a %ld ans d'age\n", j+1,utilisateur[j].prenom, utilisateur[j].nom, utilisateur[j].adresse, utilisateur[j].age);
else
printf("L'utilisateur n°%ld est une fille appelee %s %s qui habite a %s et qui a %ld ans d'age\n", j+1,utilisateur[j].prenom, utilisateur[j].nom, utilisateur[j].adresse,utilisateur[j].age);
}
return 0;
}

1 réponse

Utilisateur anonyme
 
Salut,

Difficile de déterminer d'où vient le problème sans message d'erreur - sans problème.

As-tu essayé d'exécuter ton code en mode pas-à-pas ?
0
nizarkhalloufi Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
ca ce bloque ici
scanf("%d", utilisateur[i].garcon);
0
Utilisateur anonyme
 
Penses à initialiser les valeurs dans tes structures au début du main.

Ensuite, si ça bloque c'est que tu dois entrer un chiffre compris entre 1 et 2 dans la console (Et ceci, 4 fois- Ne pas oublier d'appuyer sur Entrer)

La condition qui suit le while n'est pas logique non plus ... autant modifier la condition du while directement.
0
nizarkhalloufi Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
ça ne marche pas, j'ai esseyé
0
Utilisateur anonyme
 
Ah oui, j'avais pas vu.

Essaies :
scanf("%d", &(utilisateur[i].garcon));

Sur tous les scanf il faut utiliser cette syntaxe (SAUF si la variable est un tableau - donc déjà un pointeur), mais pas les printf.
0
nizarkhalloufi Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
merci bien, c'est vraiment ca le probleme. merci pour votre aide.
0