Partage
  • Partager sur Facebook
  • Partager sur Twitter

Carnet d'adresse

Sujet résolu
    27 juillet 2006 à 19:15:19

    Bonsoir tout le monde !
    alors, j'étudis le tuto sur le C et arrivé au structures j'essaye de faire le programme que matéo21 propose.
    Comme vous vous en doutez j'ai un "petit" probleme :p . lorsque je la premiere personne rentre ses informations tout fonctionne mais pour la deuxieme fois, arrivez a l'age, le programme plante !!!
    J'ai beau me relire je trouve pas :D , alors si vous pouviez me donner un ptit coup de pouce ^^.
    voici le code :



    #include <stdio.h>
    #include <stdlib.h>


    typedef struct CarnetAdresse CarnetAdresse;
    struct CarnetAdresse
    {
        char nom[100];
        char prenom[100];
        char ville[100];

        long age
    };


    int main()
    {
        CarnetAdresse joueur[1];
        long i = 0;

        for (i = 0 ; i < 2 ; i++)
        {
            printf (" Quel est votre prenom ?\n");
            scanf ("%s", joueur[i].prenom);
            printf ("\n Quel est votre nom ?\n");
            scanf ("%s", joueur[i].nom);
            printf ("\n Dans quelle ville habitez vous ?\n");
            scanf ("%s", joueur[i].ville);
            printf ("\n Quel age avez vous ?\n");
            scanf ("%ld", &joueur[i].age);
            printf ("\n vous vous appellez %s %s, vous  habitez %s et vous avez %ld ans\n\n", joueur[i].nom, joueur[i].prenom, joueur[i].ville, joueur[i].age);
        }


            return 0;
    }


    Merci d'avance :)
    • Partager sur Facebook
    • Partager sur Twitter
      27 juillet 2006 à 19:24:15

      Ha ben oui lol ton code ma fait redémarrer l'ordi xD

      Peut être le point virgule après la déclaration de age ?
      • Partager sur Facebook
      • Partager sur Twitter
        27 juillet 2006 à 19:30:53

        :lol: Désolé pour ton ordi MeThodiK, j'avais bien oublié le ; après la déclaration de la sous variable age, mais ça ne change rien au probleme :p il plante toujours au même endroit.
        je suis sur c'est un truc tout bête qui crevent les yeux :lol: Mais bon je ne le voit pas...
        • Partager sur Facebook
        • Partager sur Twitter
          27 juillet 2006 à 19:35:08

          Pourquoi
          CarnetAdresse joueur[1];

          et
              for (i = 0 ; i < 2 ; i++)

          Si il y a 5 joueurs tu met CarnetAdresse joueur[5]; et for (i = 0 ; i < 5 ; i++)
          Ou alors creer une variable qui contient le nombre de joueurs.
          • Partager sur Facebook
          • Partager sur Twitter
            27 juillet 2006 à 19:36:57

            CarnetAdresse joueur[1];

            Evidemment si il n'y a qu'une entrée dans le tableau.
            • Partager sur Facebook
            • Partager sur Twitter
              27 juillet 2006 à 19:43:53

              :D Je savait que c'était tout bête !!!Comment j'y ai pas pensé :lol: Merci beaucoup a toi Dominus.
              Et si je n'ai pas mit de variable avec le nombre de joueur c'était parce que je ne compté pas passer tant de temps dessus^^ donc je ne pensé pas en a voir besoin.

              Merci encore
              • Partager sur Facebook
              • Partager sur Twitter
                27 juillet 2006 à 19:46:26

                Essaye ca
                #include <stdio.h>
                #include <stdlib.h>


                typedef struct CarnetAdresse CarnetAdresse;
                struct CarnetAdresse
                {
                    char nom[100];
                    char prenom[100];
                    char ville[100];

                    int age;
                };


                int main()
                {

                    long i = 0;
                    CarnetAdresse joueur[100];

                    for (i = 0 ; i < 2 ; i++)
                    {
                        printf (" Quel est votre prenom ?\n");
                        scanf ("%s", joueur[i].prenom);
                        printf ("\n Quel est votre nom ?\n");
                        scanf ("%s", joueur[i].nom);
                        printf ("\n Dans quelle ville habitez vous ?\n");
                        scanf ("%s", joueur[i].ville);
                        printf ("\n Quel age avez vous ?\n");
                        scanf ("%ld", &joueur[i].age);
                        printf ("\n vous vous appellez %s %s, vous  habitez %s et vous avez %ld ans\n\n", joueur[i].nom, joueur[i].prenom, joueur[i].ville, joueur[i].age);
                    }


                        return 0;
                }


                Voila, parce que enfaite, tu rentre toute les info dans joueur donc si tu met 1, il y a pas assez de place.

                Edit: Oups, avec ca on fait 3 personne acause du <= du for, il faut l'enlever et mettre < seulement.
                • Partager sur Facebook
                • Partager sur Twitter
                  27 juillet 2006 à 19:50:40

                  Oui ça marcherai aussi, mais 2 suffit, ça prend moin de place en mémoire :p . Je rigole, merci pour cette solution
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Carnet d'adresse

                  × 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.
                  • Editeur
                  • Markdown