Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tableau + Structure

P'tite question...

    11 octobre 2006 à 18:27:53


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

    #define SDL() printf("\n");

    struct Personne
    {
        char nom[25], prenom[25], adresse[100];
       
        long age;
    };

    int main(int argc, char *argv[])
    {
         long i;
         
         Personne tableau[2];
         
         for (i = 0 ; i < 2 ; i ++)
         {
            printf("Prenom de la personne %ld", i);
            SDL()
            scanf("%s", tableau[i].nom);
           
            SDL()
            SDL()
           
            printf("Nom de la personne %ld", i);
            SDL()
            scanf("%s", tableau[i].prenom);
           
            SDL()
            SDL()
           
            printf("Adresse de la personne %ld", i);
            SDL()
            scanf("%s", tableau[i].adresse);
           
            SDL()
            SDL()
           
            printf("Age de la personne %ld", i);
            SDL()
            scanf("%ld", &tableau[i].age);
            // Est-ce que c'est normal si là je mets un signe & devant "tableau[i].age" ??

            SDL()
            SDL()
            SDL()
         }
         
         printf("-----------------------------");
         SDL()   
         
         for (i = 0 ; i < 2 ; i ++)
         {
            printf("Le prenom de la personne %ld est %s", i, tableau[i].prenom);
            SDL()
            printf("Le nom de la personne %ld est %s", i, tableau[i].nom);
            SDL()
            printf("L'adresse de la personne %ld est %s", i, tableau[i].adresse);
            SDL()
            printf("L'age de la personne %ld est %ld", i, tableau[i].age);
            SDL()
            SDL()
            SDL()
         }
         
         system("PAUSE");     
         return 0;
    }


    Voilà, la question est en commentaire...
    • Partager sur Facebook
    • Partager sur Twitter
      11 octobre 2006 à 18:34:58

      oui car c'est un entier. (comme si c'était &age tout court)
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        11 octobre 2006 à 18:37:18

        En effet, quand tu fais
        tableau[i]
        tableau n'étant pas un tableau de pointeurs, tableau[i] est assimilé à une variable ; Scanf veut l'adresse de cette variable. Le fait que ce soit une structure ou pas ne change rien.
        • Partager sur Facebook
        • Partager sur Twitter
          11 octobre 2006 à 18:38:42

          Ok merci...

          Et sinon, quand... [Attendez je réfléchis] je veux créer un tableau de Structures... Comme ceci :

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

          // SDL ==> Saut De Ligne !!
          #define SDL() printf("\n");

          // Structure des données d'un joueur
          typedef struct Personne Personne;
          struct Personne
          {
              char nom[25], prenom[25], adresse[100];
             
              long age;
          };

          int main(int argc, char *argv[])
          {
               long i, tailleTableau = 0;
               
               printf("Taille tableau ?");
               scanf("%ld", &tailleTableau);
               
               tableau = malloc ( tailleTableau * sizeof(Personne));
               
               for (i = 0 ; i < tailleTableau ; i ++)
               {
                  printf("Prenom de la personne %ld", i);
                  SDL()
                  scanf("%s", tableau[i].nom);
                 
                  SDL()
                  SDL()
                 
                  printf("Nom de la personne %ld", i);
                  SDL()
                  scanf("%s", tableau[i].prenom);
                 
                  SDL()
                  SDL()
                 
                  printf("Adresse de la personne %ld", i);
                  SDL()
                  scanf("%s", tableau[i].adresse);
                 
                  SDL()
                  SDL()
                 
                  printf("Age de la personne %ld", i);
                  SDL()
                  scanf("%ld", &tableau[i].age);
                 
                  SDL()
                  SDL()
                  SDL()
               }
               
               printf("-----------------------------");
               SDL()   
               
               for (i = 0 ; i < tailleTableau ; i ++)
               {
                  printf("Le prenom de la personne %ld est %s", i, tableau[i].prenom);
                  SDL()
                  printf("Le nom de la personne %ld est %s", i, tableau[i].nom);
                  SDL()
                  printf("L'adresse de la personne %ld est %s", i, tableau[i].adresse);
                  SDL()
                  printf("L'age de la personne %ld est %ld", i, tableau[i].age);
                  SDL()
                  SDL()
                  SDL()
               }
               
               system("PAUSE");     
               return 0;
          }
           
          • Partager sur Facebook
          • Partager sur Twitter
            11 octobre 2006 à 19:10:38

            Dans chaque scanf(), on attends une adresse ... donc c'ets une adresse peu importe quel type de variable c'est.
            • Partager sur Facebook
            • Partager sur Twitter
              11 octobre 2006 à 19:30:38

              Pardon excusez-moi ^^ J'vfais bientôt partir pour le match France/Iles Feroë (désolé pour l'orthographe) donc...

              "tableau = malloc ( tailleTableau * sizeof(Personne));"

              est-ce bien comme ça que je déclare un tableau avec variable de type personne et avec malloc ??

              • Partager sur Facebook
              • Partager sur Twitter

              Tableau + Structure

              × 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