Partage
  • Partager sur Facebook
  • Partager sur Twitter

vos propre variable

petit exercice

Sujet résolu
    13 août 2008 à 13:29:41

    Bonjour alors voilà j'ai fait un exercice sur "vos propre type de variable".
    avec le nom, le prénom, l'adresse... de deux personnes... cependant le code plante. Donc je fais appel à vous :)
    voici le code main.C :
    #include <stdio.h>
    #include <stdlib.h>
    #include "main.h"
    
    int main()
    {
        long i;
        long a;
        Personne joueurs[1];
        for(i = 0; i <= 1; i++) // dois poser 2 fois chaque question, 1 pour chaque joueur
        {
            printf("Quel est ton prenom ?\n\n");
            scanf("%s", joueurs[i].prenom);
            printf("\n\n");
            printf("Quel est ton nom de famille ?\n\n");
            scanf("%s", joueurs[i].nom);
            printf("\n\n");
            printf("Ou habites-tu (ville) ?\n\n");
            scanf("%s", joueurs[i].ville);
            printf("\n\n");
            printf("Quel est ton adresse ?\n\n");
            scanf("%s", joueurs[i].adresse);
            printf("\n\n");
            printf("Quel age as tu ?\n\n");
            scanf("%ld", joueurs[i].age);
            printf("\n\n");
        }
    for(i = 0; i <= 1; i++)
        {
        printf("%s %s habite %s a %s, il a %ld ans !\n\n", joueurs[i].prenom, joueurs[i].nom, joueurs[i].adresse, joueurs[i].ville, joueurs[i].age); //affiche les résultat des 2 joueurs
        }
        return 0;
    }
    


    et voici le main.h :
    #ifndef MAIN_H_INCLUDED
    #define MAIN_H_INCLUDED
    
    
    
    #endif // MAIN_H_INCLUDED
    
    typedef struct Personne Personne;
    struct Personne
    {
        char nom[100];
        char prenom[100];
        char adresse[1000];
        char ville[30];
    
        long age;
    };
    


    il me pose toutes les questions pour le premier joueur puis plante...
    Où est le soucis ?
    • Partager sur Facebook
    • Partager sur Twitter
      13 août 2008 à 13:46:46

      j'ai pas regardé très attentivement ton code mais comment veux-tu créer 2 personne en n'en faisant qu'une?

      Personne joueurs[1];
      =>Personne Joueurs[2];
      
      • Partager sur Facebook
      • Partager sur Twitter
        13 août 2008 à 13:50:21

        ça commence toujours à 0 non ?
        donc y'a :
        joueurs[0] et joueurs[1]
        d'où 2 joueurs...
        • Partager sur Facebook
        • Partager sur Twitter
          13 août 2008 à 13:50:49

          Bonjour,

          Alors déjà je le dis cela fais 4 jours que je suis dans le language C ^^

          Rien qu'avec 4 jours d'apprentissage je vois des petits oublis ^^:)

          long i;
          long a;
          


          il faudrait peut être les initialiser à 0
          long i = 0;
          long a = 0;
          

          Ensuite je ne sais pas pourquoi tu a mis la variable " a " ... tu ne l'utilise pas dans la suite :o

          Pour la variable age initialise la également :

          long age = 0;
          


          Et pour finir je proposerai d'essayer :
          for(i = 0; i < 2; i++)
          


          J'espère t'avoir aidé avec mes 4 jours d'expérience ;);):p:p
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            13 août 2008 à 13:57:33

            Citation : DarkFel

            ça commence toujours à 0 non ?
            donc y'a :
            joueurs[0] et joueurs[1]
            d'où 2 joueurs...


            Oui mais pas pour les déclarations. Si tu veux qu'il y ait 2 joueurs tu dois faire:
            Personne joueurs[2];
            
            et après tu commenceras à 0 tu auras donc joueurs[0] et joueurs[1]
            • Partager sur Facebook
            • Partager sur Twitter
              13 août 2008 à 13:59:59

              c'est bon j'ai trouvé l'arreur :
              il faut mettre :
              scanf("%ld", &joueurs[i].age);
              

              j'avais oublié le & car ce n'est plus un pointeur mais une simple variable :)
              Voilà désolé :)


              pour répondre :

              long i;
              


              est initialisé à 0 dans la boucle for :

              for(i = 0; i <=1; i++)
              


              long a;
              

              j'avais oublié de l'enlever, en fait il sert à rien :D

              voilà :)

              i <= 1 revient à i < 2...
              • Partager sur Facebook
              • Partager sur Twitter
                13 août 2008 à 14:02:39

                oui en fait tu confond la déclaration et l'utilisation
                pour déclarer un tableau de n struct, tu doit faire Personne tab[n]
                • Partager sur Facebook
                • Partager sur Twitter
                  13 août 2008 à 14:04:32

                  Oki autant pour moi ^^ étant débutant je n'ai pas encore l'oeil très vif :)
                  • Partager sur Facebook
                  • Partager sur Twitter

                  vos propre variable

                  × 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