Aide avec structure de donne

Fermé
Don 1 - 16 juil. 2010 à 06:53
kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 16 juil. 2010 à 10:49
Bonjour, tout le monde
mon programme se plante just apres que jai renre lage de lutilisateur 1 et ne me donne pas loportunite dentree les infos de lutilisateur 2.
pouriez vous me donner un coup de main
et me donner une fontion assez courte pour afficher les infos saisie de chaque utilisateur

meric davance

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

int main()
{
int i;
typedef struct Personne Personne;
struct Personne
{
char nom[100];
char prenom[100];

int age;
};

Personne utilisateur[3];

for ( i = 1 ; i < 3 ; i++)
{
printf("\nEntres les informations de la personne %d", i);
printf("\nQuel est le nom de la personne %d ? ", i);
scanf("%s", utilisateur[i].nom);
printf("\nLe prenom de la personne %d ? ", i);
scanf("%s", utilisateur[i].prenom);
printf("\nL'age de la personne %d ?", i);
scanf("%d", utilisateur[i].age);
}


}

1 réponse

kij_82 Messages postés 4088 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
16 juil. 2010 à 10:49
Bonjour,

Un tableau commence toujours à l'indice 0 et non 1.
Donc si tu veux remplir ton tableau avec l'indice de parcours de ta boucle, il va te falloir débuter ta boucle à 0.

Et si tu ne souhaite que 2 joueurs, alors la taille de ton tableau sera de 2 et non 3.

Ensuite, puisqu'il s'agit d'un tableau d'objet de type Personne, alors il faut initialiser un objet Personne pour chaque case du tableau pour y mettre les informations:

Personne utilisateur[2];

for (int i = 0 ; i < 2 ; i++)
{
// --- Allocation mémoire d'un objet de type Personne dans une case du tableau
// --- Se renseigner sur la bonne syntaxe, je ne sais plus comment c'est exactement
// --- depuis le temps.
utilisateur[i] = malloc (Personne*);

printf("\nEntres les informations de la personne %d", i);
printf("\nQuel est le nom de la personne %d ? ", i);
scanf("%s", utilisateur[i].nom);
printf("\nLe prenom de la personne %d ? ", i);
scanf("%s", utilisateur[i].prenom);
printf("\nL'age de la personne %d ?", i);
scanf("%d", utilisateur[i].age);
} 


Pour ce qui est de demander deux fois (pour joueur 1 puis 2), ça ne devrais pas poser de souci.
0