Bonjour,
j'apprend le langage C et j'ai un "exercice" à réaliser. L'intitulé est:
Créez des tableaux de type structure et demandez les infos de chaque joueur grâce à une boucle (qui se répète tant qu'il y a des joueurs). Faites un petit tableau de 2 joueurs pour commencer, mais si ça vous amuse, vous pourrez agrandir la taille du tableau plus tard.
Affichez à la fin du programme les infos que vous avez recueillies sur chacun des joueurs.
alors voilà le code est quasiment fini mais j'ai un souci que l'intitulé explique bien.
la structure Personne est créé dans un header:
puis le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #ifndef structure_tableau_personne_structure_h #define structure_tableau_personne_structure_h void demandeDeRenseignementsJoueurs(); void afficheRenseignement(); typedef struct Personne Personne; struct Personne { char nom[100]; char prenom[100]; int age; int sexe; // char nomDeRue[1000]; //parce que soucis avec les espaces int numeroDeMaison; char ville[100]; int codePostal; }; #endif
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52 #include <stdio.h> #include <stdlib.h> #include "structure.h" int main(int argc, const char * argv[]) { int nombreDeJoueur=0; printf("combien y a t'il de joueur(s)?"); scanf("%d",&nombreDeJoueur); demandeDeRenseignementsJoueurs(nombreDeJoueur); afficheRenseignement(nombreDeJoueur); } void demandeDeRenseignementsJoueurs(combienJoueur) //création de tableaux remplis des renseignements des joueurs { int i; for (i=0; i<combienJoueur; i++) { Personne joueur[i]; printf("Quel est le prenom du joueur%d?\n",i+1); scanf("%s",joueur[i].prenom); printf("Quel est le nom de %s?\n",joueur[i].prenom); scanf("%s",joueur[i].nom); printf("Quel est l'âge de %s?\n",joueur[i].prenom); scanf("%d",&joueur[i].age); printf("Quel est le sexe de %s?\nTapez 1 pour garçon ou 2 pour fille:",joueur[i].prenom); scanf("%d",&joueur[i].sexe); // printf("Quel est le nom de la rue de %s?\n",joueur[i].prenom); //soucis avec les espaces // scanf("%s",joueur[i].nomDeRue); printf("A quel numéro?\n"); scanf("%d",&joueur[i].numeroDeMaison); printf("Dans quel ville habite %s?\n",joueur[i].prenom); scanf("%s",joueur[i].ville); printf("Dont le code postal est:\n"); scanf("%d",&joueur[i].codePostal); } } void afficheRenseignement(combienJoueur) // affiche les renseignements recueillis à l'aide de la fonction demandeDeRenseignementJoueurs { int i; for (i=0; i<combienJoueur; i++) { printf("Renseignements du joueur %d:\n\n",i+1); printf("%s ",joueur[i].prenom); printf("%s\n",joueur[i].nom); printf("%d",joueur[i].age); printf("%s ",joueur[i].numeroDeMaison); printf("%d %s",joueur[i].codePostal,joueur[i].ville); } }
Le soucis arrive à la ligne 11 quand je fais appelle à la fonction afficheRenseignement. C'est dans cette fonction que l'on va afficher les différents renseignements contenus dans les tableaux créé dans la fonction demandeDeRenseignementsJoueurs (ligne 15). En effet dans cette fonction c'est comme si on n'avait pas créé les tableaux ou plutôt comme s'ils avaient disparus une fois la fonction terminée.
Je pense qu'avec un return le problème pourrait être résolu mais j'ai pas réussi à le mettre en pratique. Plus je teste de chose plus j'ai des erreurs.
Ou alors, il faut que je m'y prenne autrement.
Merci à ceux qui pourront me filer un coup de patte.
Partager