Probleme avec un exo en c
Résolu
benUmaar
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
benUmaar Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
benUmaar Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Besoin de votre aide je dois créer un tableau de type Personne et demander les infos de chacun grâce
à une boucle (qui se répète tant qu'il y a des joueurs). et je dois faire un petit tableau de 2 joueurs pour commencer,
ça c'est dans main.c
et le .h
ca compile et j'inserts toutes les infos jusqu'au niveau de age et le programme plante
Merci pour la comprehension
Besoin de votre aide je dois créer un tableau de type Personne et demander les infos de chacun grâce
à une boucle (qui se répète tant qu'il y a des joueurs). et je dois faire un petit tableau de 2 joueurs pour commencer,
ça c'est dans main.c
#include <stdio.h>
#include <stdlib.h>
#include "Personne.h"
int main(int argc, char *argv[])
{
int i=0;
struct Personne joueur[2];
for (i=1; i<=2; i++)
{
printf("Quel est votre nom joueur ? \n");
scanf("%s", joueur[i].nom);
printf("Votre prenom joueur ? \n");
scanf("%s", joueur[i].prenom);
printf("Quel est votre age joueur ?\n ");
scanf("%d", joueur[i].age);
printf("Vous vous appelez %s %s %d\n", joueur[i].prenom, joueur[i].nom, joueur[i].age);
}
return 0;
}
et le .h
#ifndef PERSONNE_H_INCLUDED
#define PERSONNE_H_INCLUDED
struct Personne
{
char nom[100];
char prenom[100];
char adresse[1000];
int age;
int garcon; // Booléen : 1 = garçon, 0 = fille
};
#endif // PERSONNE_H_INCLUDED
ca compile et j'inserts toutes les infos jusqu'au niveau de age et le programme plante
Merci pour la comprehension
A voir également:
- Convertir fichier exo en mp4
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
4 réponses
Serais ce dû au fait que tu n'as pas initialisé ta variable age
int age =0;
en C# ça arrive très souvent ...
int age =0;
en C# ça arrive très souvent ...
Slt,
La fonction scanf prend une adresse en second argument.
;)
La fonction scanf prend une adresse en second argument.
#include <stdio.h> #include <stdlib.h> #include "Personne.h" #define NB_JOUEUR 2 int main(int argc, char *argv[]) { int i=0; struct Personne joueur[NB_JOUEUR]; for (i=1; i<=NB_JOUEUR; i++) { printf("Quel est votre nom joueur ? \n"); scanf("%s", joueur[i].nom); printf("Votre prenom joueur ? \n"); scanf("%s", joueur[i].prenom); printf("Quel est votre age joueur ?\n "); scanf("%d", &joueur[i].age); printf("Vous vous appelez %s %s %d\n", joueur[i].prenom, joueur[i].nom, joueur[i].age); } return 0; }
;)
Bonjour,
Plusieurs problèmes :
for (i=1; i<=2; i++)
En C, les tableaux commencent à 0. Il faut donc faire :
scanf("%d", joueur[i].age);
Il faut mettre un pointeur. Donc, ce sera :
Note : je te conseille de mettre des scanf("%99s",...) au lieu des scanf("%s",...) dans ton cas.
Cdlt,
Plusieurs problèmes :
for (i=1; i<=2; i++)
En C, les tableaux commencent à 0. Il faut donc faire :
for(i=0;i<2;i++)Ou mieux, remplacer 2 par NB (#define NB 2).
scanf("%d", joueur[i].age);
Il faut mettre un pointeur. Donc, ce sera :
scanf("%d", & joueur[i].age);
Note : je te conseille de mettre des scanf("%99s",...) au lieu des scanf("%s",...) dans ton cas.
Cdlt,
Non, ici il s'agit d'une définition de structure.