Aide avec structure de donne
Don 1
-
kij_82 Messages postés 4260 Statut Contributeur -
kij_82 Messages postés 4260 Statut Contributeur -
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);
}
}
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);
}
}
A voir également:
- Aide avec structure de donne
- Logiciel calcul structure bois gratuit - Télécharger - Architecture & Déco
- Structure d'un rapport de stage - Guide
- On vous a donné accès à un fichier rapport. il est partagé avec plusieurs personnes sur cet espace pix cloud. répondez aux questions - Forum Cloud
- Donnez à ce fichier les mêmes droits d'accès que les autres notes de service. ✓ - Forum Windows
- Rose et noir donne quelle couleur - Forum Graphisme
1 réponse
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:
Pour ce qui est de demander deux fois (pour joueur 1 puis 2), ça ne devrais pas poser de souci.
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.