Partage
  • Partager sur Facebook
  • Partager sur Twitter

Tableau de différentes personnes

    7 juin 2021 à 17:56:32

    Bonjour, je suis débutant dans le C et j'ai un petit problème dans un exercice à faire, je ne comprend pas trop ou est l'erreur

    #include <stdio.h>
    #include <stdlib.h>
    #include "main.h"
    int main()
    {
        int X = 0;
    printf("Combien il y a t'il de joueur ?\n");
    scanf("%d", &X);
    Personne user[X] ;
    int i = 0;
    
    for(i=0; i<2; i++)
    {
    printf("Utilisateur %d\n", i+1);
    
     printf("Quel est votre nom ? ");
        scanf("%s", user[i].nom);
    printf("Votre prenom ? ");
        scanf("%s", user[i].prenom);
    printf("Quel est votre age ? ");
        scanf("%d\n\n", &user[i].age);
    
    }
    
    for (i = 0 ; i < X ; i++)
        {
        printf("Vous vous appelez %s %s\n et vous avez %d ans", user[i].prenom, user[i].nom, user[i].age);
        }
    
        return 0;

    Voici mon .c 

    #ifndef MAIN_H_INCLUDED
    #define MAIN_H_INCLUDED
    typedef struct Personne Personne;
    struct Personne
    {
        char nom[100];
        char prenom[100];
        int age;
    
    };
    
    
    #endif // MAIN_H_INCLUDED
    

    et voila le .h

    Lors de la compilation, à partir des infos de la deuxième personne il y a tout qui se décale.

    Merci pour votre aide


    • Partager sur Facebook
    • Partager sur Twitter
      7 juin 2021 à 18:12:15

      Ligne 12, pourquoi testes tu i par rapport à 2 si tu dois demander des informations pour X nombre de joueurs ?
      • Partager sur Facebook
      • Partager sur Twitter
        7 juin 2021 à 18:18:16

        Je m'étais tromper je l'ai modifié sur mon code mais j'ai oublié de le remttre ici

        • Partager sur Facebook
        • Partager sur Twitter
          7 juin 2021 à 18:32:33

          OK, ligne 21, pourquoi ton scanf() attend il deux retours à la ligne ?

          Si tu veux juste capturer un entier, fait :

          scanf("%d", &user[i].age);

          Si tu veux aller à la ligne deux fois, après cette instruction, tu peux faire :

          printf("\n\n");

          Mais pas dans le spécificateur de format de scanf()

          • Partager sur Facebook
          • Partager sur Twitter

          Tableau de différentes personnes

          × 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