ça fait une petite demi-heure que je n'arrive pas avancer sur cet exercice où on demande de recueillir des informations sur des joueurs et de les afficher à la fin. Voilà, mon problème est que j'ai du mal à afficher l'adresse du joueur sous forme d'une phrase genre "5 rue machin". Outre mon programme se plante à partir de la ligne 31 et je n'arrive à saisir l'origine de ce plantage.
SVP aidez-moi! Merci d'avance!
Mon code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Personne Personne;
struct Personne
{
char nom[100];
char prenom[100];
char adresse[100];
long codePostal;
char numeroTelephone[100];
};
int main()
{
Personne joueurs[2]={" ", " ", 0, " "};
int i=0;
for(i=0; i<2; i++)
{
printf("Joueur%d quel est votre nom? ",i+1);
scanf("%s", joueurs[i].nom);
printf("\n");
printf("Joueur%d quel est votre prenom? ",i+1);
scanf("%s", joueurs[i].prenom);
printf("\n");
printf("Joueur%d quel est votre adresse? ",i+1);
scanf("%s", joueurs[i].adresse);
printf("\n");
printf("Joueur%d quel est votre code postal? ",i+1);
scanf("%ld", joueurs[i].codePostal);
printf("\n");
printf("Joueur%d quel est votre numero de telephone? ",i+1);
scanf("%s", joueurs[i].numeroTelephone);
printf("\n");
}
for(i=0; i<2; i++)
{
printf("=== Informations personnelles sur Joueur%d ===",i+1);
printf("Nom: %s\n", joueurs[i].nom);
printf("Prenom: %s\n", joueurs[i].prenom);
printf("Adresse: %s\n", joueurs[i].adresse);
printf("Code Postal: %ld\n", joueurs[i].codePostal);
printf("Numero de telephone: %s\n", joueurs[i].numeroTelephone);
}
return 0;
}
Pourquoi spécifiquement un type long pour le code postal ?
Pourquoi pas? En tout cas intn'est garanti que pour les nombres de -32768 à +32767 en standard, même si très souvent il peut mieux. Mais en effet, le type uint32_t ou même une chaîne serait peut-être plus approprié.
Pourquoi spécifiquement un type long pour le code postal ?
Pourquoi pas? En tout cas intn'est garanti que pour les nombres de -32768 à +32767 en standard, même si très souvent il peut mieux. Mais en effet, le type uint32_t ou même une chaîne serait peut-être plus approprié.
La question était dans le sens "que compte-t-il en faire ?" Si c'est pour de l'affichage par la suite, autant garder en tableau de chars, et je ne vois pas quel calcul faire sur des codes postaux...
La question était dans le sens "que compte-t-il en faire ?"
Rien, (ou peut-être faire un exercice sur les long) mais ça n'a pas été inutile, puisque c'est là qu'il a fait l'erreur.
Si, auquel cas, quel intérêt de récupérer cette information ? Si on a un problème donné, c'est pour le résoudre... Si on ajoute des données que l'on utilise pas par la suite, on complique sa résolution. Ce genre de donnée serait intéressante pour rechercher les villes associées à ce code postal afin de sélectionner sa ville dans une base de données.
Le PO semble partir d'un problème concret, il est de bon ton de respecter ses consignes. Peut-être que le PO sera capable de répondre au pourquoi de l'utilisation de ce type de donnée.
@YoussouphaLi: à quoi servent les for dans le code que tu montres ? Et, franchement, tu connais beaucoup de codes postaux ou de numéros de téléphone (et de noms et prénoms, tant que j'y suis - adresses, à la limite) qui ont besoin de 99 caractères pour être stockés ?
Et pour poster du code: bouton </> et choisir c++ comme langage.
- Edité par edgarjacobs 24 juin 2017 à 21:22:51
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Si vous présentez du code dans votre message, il est obligatoire d'utiliser la mise en forme spécifique, afin de permettre à vos lecteurs de facilement le comprendre, et ainsi vous aider plus facilement.
Je fais la modification pour cette-fois, merci d'y penser à l'avenir.
ça fait une petite demi-heure que je n'arrive pas avancer sur cet exercice où on demande de recueillir des informations sur des joueurs et de les afficher à la fin.
petite astuce pour saisir un string :
#include <stdio.h>
#include <stdlib.h>
int main()
{
char tab[81] = {0};
char c;
if (scanf("%80[^\n]", tab) != 1)
return EXIT_FAILURE;
printf("vous avez entre : %s",tab);
return 0;
}
- Edité par Alex Le Zero 3 juillet 2017 à 20:46:49
Afficher une phrase tapée par l'utilisateur
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
En recherche d'emploi.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Moderateur forum || FAQ 3D || discord 3D francophone || OC Tweak script