Problème avec ce programme
Résolu
nazgulou
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
nazgulou Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
nazgulou Messages postés 6 Date d'inscription Statut Membre Dernière intervention -
Salut , j'ai un problème avec ce programme :
Le problème est au moment ou le programme demande l'age, lors du deuxième tour de la boucle ce doit être l'age du joueur 2 qui est demandé mais il y a écrit : Age du joueur 110.
Pareil pour l'adresse ensuite.
Si quelqu'un peut m'aider , s'il vous plait.
Ps: Je suis un débutant.
#include <stdio.h> #include <stdlib.h> #include "main.h" int main() { int i=0; int nombreJoueur = 2; Perso humain[2]; for(i=1;i<=nombreJoueur;i++) { printf("Nom du joueur %d\n", i); scanf("%s", humain[i].nom); printf("Prenom du joueur %d\n", i); scanf("%s", humain[i].prenom); printf("Age du joueur %d\n", i); scanf("%d",humain[i].age); printf("Adresse du joueur %d\n", i); scanf("%s",humain[i].adresse); } return 0; }
Le problème est au moment ou le programme demande l'age, lors du deuxième tour de la boucle ce doit être l'age du joueur 2 qui est demandé mais il y a écrit : Age du joueur 110.
Pareil pour l'adresse ensuite.
Si quelqu'un peut m'aider , s'il vous plait.
Ps: Je suis un débutant.
A voir également:
- Problème avec ce programme
- Programme demarrage windows - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Programme word gratuit - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
1 réponse
Salut,
Les indices des tableaux commencent à 0. Là tu commences à 1, d'où une erreur.
Dans
La fonction scanf prend des pointeurs, pour demander l'âge tu fais :
Il faudrait aussi écrire :
à la place de :
Les indices des tableaux commencent à 0. Là tu commences à 1, d'où une erreur.
for(i=1;i<=nombreJoueur;i++)A remplacer par :
for(i=0;i<nombreJoueur;i++)(en remplaçant i par i+1 à certains endroits)
Dans
scanf("%d",humain[i].age);je suppose qu'il faudrait mettre :
scanf("%d",&(humain[i].age));
La fonction scanf prend des pointeurs, pour demander l'âge tu fais :
int age; scanf("%d", &age);
Il faudrait aussi écrire :
Perso humain[nombreJoueur];
à la place de :
Perso humain[2];Si tu veux qu'il y ait autant d'humains que de joueurs.
Il faudrait aussi écrire :
Perso humain[nombreJoueur];
Non. Ce n'est pas autorisé en C ISO 89/90. Il faudrait plutôt faire un #define. ou alors faire une allocation dynamique (malloc()).
@nazgulou,
humain[i].age est de type int. Dans ton scanf(), il faut envoyer l'adresse de la variable. Pour obtenir l'adresse d'une variable (hors pointeur et tableau), il suffit de mettre & devant. Par exemple : &(humain[i].age)