Partage
  • Partager sur Facebook
  • Partager sur Twitter

Structure avec tableaux

Sujet résolu
    20 mars 2006 à 18:51:15

    Bonjour, je voudrais faire l'exercice concernant les structures. Mais j'ai un problème. Je l'ai retourné dans tous les sens mais pas moyen de trouver la solution o_O

    Voici mon code :

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

    struct Personne
    {
    int joueur[2];
    char nom[100];
    char prenom[100];
    };



    int main(int argc, char *argv[])
    {
    struct Personne joueur[2]= { 0 };
    long i=0;
    for ( i=0 ; i< 2 ; i++)
    {
    printf("Joueur %ld quel est votre prenom\n", joueur[i]);
    scanf("%s", joueur[i].prenom);
    printf("Joueur %ld quel est votre nom \n", joueur[i]);
    scanf("%s", joueur[i].nom);
    printf("Joueur %ld votre nom : %s, votre prenom : %s",joueur[i], joueur[i].nom, joueur[i].prenom);
    }
    return 0;
    }

    Problème : GROS PLANTAGE !!!

    Donc pour moi tout le code est faux mais je ne trouve vraiment pas la solution... Merci d'avance :)
    • Partager sur Facebook
    • Partager sur Twitter
      20 mars 2006 à 19:02:40

      1) La structure :
      struct Personne
      {
      int joueur[2];
      char nom[100];
      char prenom[100];
      };

      Cete structure n'est pas la meilleure, utilise plutôt :
      struct Personne
      {
          char nom[100];
          char prenom[100];
      };


      2) Le main :
      Plusieures erreurs.
      Ne pas oublier qu'il faut envoyer un pointeur à scanf.
      De plus joueur[i] est une structure pas un int ou un long ("%ld" dans printf).

      int main(int argc, char *argv[])
      {
          struct Personne joueur[2]= { 0 };
          long i=0;
          for ( i=0 ; i< 2 ; i++)
          {
              printf("Joueur %ld quel est votre prenom\n", i);
              scanf("%s", joueur[i]->prenom);
              printf("Joueur %ld quel est votre nom \n", i);
              scanf("%s", joueur[i]->nom);
              printf("Joueur %ld votre nom : %s, votre prenom : %s",i, joueur[i].nom, joueur[i].prenom);
          }
          return 0;
      }

      Ca devrait marcher là normalement...
      • Partager sur Facebook
      • Partager sur Twitter
        20 mars 2006 à 19:17:32

        Citation : Joj0

        Problème : GROS PLANTAGE !!!



        Compiling: main.c
        main.c: In function `main_':
        main.c:21: warning: long int format, Personne arg (arg 2)
        main.c:23: warning: long int format, Personne arg (arg 2)
        main.c:25: warning: long int format, Personne arg (arg 2)
        Linking console executable: C:\dev\forums\OP\01.exe
        Process terminated with status 0 (0 minutes, 1 seconds)
        0 errors, 3 warnings

        Faut-il des explications supplémentaires ?
        • Partager sur Facebook
        • Partager sur Twitter
        Music only !
          20 mars 2006 à 19:33:41

          Merci beaucoup ça marche. Et merci aussi pour les explications.

          C'est la première fois que je poste sur ce forum, et vraiment je suis surpris par la rapidité et la qualités des réponses !!

          Merci beacoup, je peux enfin passer à la suite :)
          • Partager sur Facebook
          • Partager sur Twitter

          Structure avec tableaux

          × 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