Partage
  • Partager sur Facebook
  • Partager sur Twitter

[c] problème lors de l'execution.

execice cours "Créez vos propres types de variables !"

Sujet résolu
    9 mars 2006 à 15:17:19

    bonjour, je suis à la partie "Créer vos propres type de variables" du cours sur le C (et C++), là je fais l'exercice (à la moitié du cours à peu près), et j'ai un soucis lors de l'execution du code ci dessous.

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

    typedef struct Joueurs Joueurs;
    struct Joueurs
    {
           char nom[100];
           char prenom[100];
    };

    int main(int argc‚ char *argv[])
    {
      int i; //variable pour nombre de joueur.
     
      for (i=1; i<3; i++)
      {
          Joueurs joueur[i];
          printf("Nom joueur %s"‚i);
          scanf("%s"‚ joueur[i].nom);
          printf("Prénom joueur %s"‚ i);
          scanf("%s"‚ joueur[i].prenom);
     
          printf("Le joueur 1 s'appelle %s %s !"‚ joueur[i].prenom‚ joueur[i].nom);
      }
      system("PAUSE");     
      return 0;
    }


    j'aurais voulu savoir quelle serait l'erreur.

    merci pour votre aide.

    ps: j'utilise "Dev-C++"



    edit: le soucis lors de l'execution, c'est carrément un plantage avec un écran

    Citation : Windows

    "execice Structure.exe a rencontré un problème et doit fermer. Nous vous prions de nous excuser pour le désagrément encouru."

    • Partager sur Facebook
    • Partager sur Twitter
      9 mars 2006 à 15:28:02

      Probleme 1 :
      Sors le Joueurs joueur[i]; de la boucle et mets juste après le int i;
      Joueurs joueur[3];

      Probleme 2:
      Ici tu déclares à chaque fois un nouveau tableau de taille 1, 2, puis 3 et tu essayes d'acceder à l'element 1 pour le tableau de taille 1, l'élement 2 pour la taille 2, et l'élement 3 pour celui de taille 3, or un tableau commence à l'indice 0 et finit à taille - 1

      ta boucle devient alors :
      for (i=0; i < 3; i ++)
      • Partager sur Facebook
      • Partager sur Twitter
        9 mars 2006 à 15:38:29

        merci pour ta réponse.

        j'ai donc transformé mon code comme ceci :

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

        typedef struct Joueurs Joueurs;
        struct Joueurs
        {
               char nom[100];
               char prenom[100];
        };

        int main(int argc‚ char *argv[])
        {
          int i; //variable pour nombre de joueur.
          Joueurs joueur[i];
         
          for (i=0; i<3; i++)
          {
              printf("Nom joueur %s"‚i);
              scanf("%s"‚ joueur[i].nom);
              printf("Prénom joueur %s"‚ i);
              scanf("%s"‚ joueur[i].prenom);
         
              printf("Le joueur 1 s'appelle %s %s !"‚ joueur[i].prenom‚ joueur[i].nom);
          }
          system("PAUSE");     
          return 0;
        }


        seulement, ça me donne --> ceci <--
        • Partager sur Facebook
        • Partager sur Twitter
          9 mars 2006 à 15:45:36

          Citation : Kayl

          Probleme 1 :
          Sors le Joueurs joueur[i]; de la boucle et mets juste après le int i;
          Joueurs joueur[3];

          • Partager sur Facebook
          • Partager sur Twitter
            9 mars 2006 à 15:48:20

            oui et bien ça fait pareil >_<...

            enfin merci quand même.
            • Partager sur Facebook
            • Partager sur Twitter
              9 mars 2006 à 15:58:21


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

              typedef struct Joueurs Joueurs;
              struct Joueurs
              {
                     char nom[100];
                     char prenom[100];
              };

              int main(int argc‚ char *argv[])
              {
                int i; //variable pour nombre de joueur.
                Joueurs joueur[3];
               
                for (i=0; i<3; i++)
                {
                    printf("Nom joueur %d\n"‚i);
                    scanf("%s"‚ joueur[i].nom);
                    printf("Prénom joueur %d\n"‚ i);
                    scanf("%s"‚ joueur[i].prenom);
                   
                    printf("Le joueur %d s'appelle %s %s !\n"‚i‚joueur[i].prenom‚ joueur[i].nom);
                }
                system("PAUSE");     
                return 0;
              }


              Works fine for me...

              Edit : pour info j'ai changé :
              printf("Nom joueur %d\n",i);
              • Partager sur Facebook
              • Partager sur Twitter
                9 mars 2006 à 16:10:29

                merci Kayl. c'est bon, ça marche ^^
                • Partager sur Facebook
                • Partager sur Twitter

                [c] problème lors de l'execution.

                × 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