Demander des informations et les stockées dans un tableau

hugo7 Messages postés 352 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 29 juin 2011 - 7 déc. 2008 à 16:22
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 8 déc. 2008 à 20:59
Bonjour à tous je commence le C et j'ai un exercice à faire que je n'arrive pas à résoudre.

Voila la consigne :

J'ai créer une structure dont voici le code :

typedefstructPersonne Personne;

structPersonne

{
charnom[100];
charprenom[100];
charadresse[1000];

longage;
intgarcon;
};

Le but de l'exercice et de demander des informations ( nom et prénom ) a un certain nombre
d'utilisateur et de les stockées dans un tableau.
Pour cela je dois utiliser une boucle qui dit que t'en qu'il y a des utilisateur on demande ces informations.
Puis quand toutes les informations ont été récoltées dans le tableau on l'affiche.

Pourl'instant j'ai réussi a créer la boucle et a demander les informations t'en qu'il y a des utilisateurs mais je ne sais pas commentles mettre dans un tableau.

Voici mon code :

int main(int argc, char *argv[])
{
char tableau[2];
long compteur = 0;
while ( compteur<2)
{
Personne utilisateur;

printf("Quel est votre nom ? ");
scanf("%s", utilisateur.nom);
printf("Votre prenom ? ");
scanf("%s", utilisateur.prenom);
tableau[0]="Vous vous appelez %s %s\n\n", utilisateur.prenom, utilisateur.nom;
system("PAUSE");
compteur++;
}

system("PAUSE");
return 0;
}

 Voila j'éspère avoir été asser claire et d'avances merci pour vos réponses.

3 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
7 déc. 2008 à 18:59
Le plus simple ici : tu déclares ton tableau de personnes puis tu remplis correctement les données :

int main(int argc, char *argv[])
{
Personne tableau[2];
long compteur = 0;
while ( compteur<2)
{
Personne* utilisateur = tableau + compteur; (ou bien &tableau[compteur])

printf("Quel est votre nom ? ");
scanf("%s", utilisateur->nom);
printf("Votre prenom ? ");
scanf("%s", utilisateur->prenom);
<strike>tableau[0]="Vous vous appelez %s %s\n\n", utilisateur.</strike><strike>prenom, utilisateur.</strike><strike>nom;</strike>
system("PAUSE");
compteur++;
}

system("PAUSE");
return 0;
}

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
hugo7 Messages postés 352 Date d'inscription samedi 11 décembre 2010 Statut Membre Dernière intervention 29 juin 2011
8 déc. 2008 à 18:52
Merci pour ta réponse vecchio56 mais je voudrais afficher le tableau.
J'ai essyaer ce code mais sa n'a pas marcher :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "fonction.h"

int main(int argc, char *argv[])
{
Personne tableau[2];
long compteur = 0, i=0;
while ( compteur<2)
{
Personne* utilisateur = tableau + compteur;

    printf("Quel est votre nom ? ");
    scanf("%s", utilisateur->nom);
    printf("Votre prenom ? ");
    scanf("%s", utilisateur->prenom);
    compteur++;
}
    for (i = 0 ; i < 4 ; i++)
        {
        printf("%c\n", tableau[i]);
    }
    return 0;
    system("PAUSE");
}
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
8 déc. 2008 à 20:59
printf te permet d'afficher des types de base, ce qui n'est pas le cas de Personne.
%c c'est pour afficher un caractère. Pour afficher une chaine, c'est %s :
printf("%s %s\n", tableau[i].prenom, tableau[i].nom);

Fais également attention à la valeur de i : tu dois t'arrêter à 2 et non à 4. Pour éviter ce genre d'erreurs, utilises des constantes :

#define NB_PERSONNES 2
...
Personne tableau[NB_PERSONNES];
...
while ( compteur<NB_PERSONNES)
...
for (i = 0 ; i < NB_PERSONNES ; i++)
...
_____________________________________
Un éditeur de ressources gratuit pour Windows
0
Rejoignez-nous