Partage
  • Partager sur Facebook
  • Partager sur Twitter

TP n°1 : un scanf n'est pas interprété

    19 avril 2006 à 23:48:21

    Voila je vais vous mettre mon code mais je ne vois pas mon erreur sinon je ne serais pas ici. Il ne veut pas recommencer au début quand on a gagné pourquoi ?

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

    int main(int argc, char *argv[])
    {
      const long MAX = 2, MIN = 1;
      long nombreMystere = 0;
      long nombreEntre = 0;
      long coupsTente = 0;
      long continuerPartie = 1;
     
      if (continuerPartie == 1)
      { 
      srand(time(NULL));
      nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

      do {
          coupsTente++;
          printf("Quel est le nombre ? ");
          scanf("%ld",&nombreEntre);
          if(nombreMystere > nombreEntre)
          {
                           printf("C'est plus ! \n\n");
          }
          if(nombreMystere < nombreEntre)
          {
                           printf("C'est moins ! \n\n");
          }
          if(nombreMystere == nombreEntre)
          {
                           printf("Vous avez gagne en %ld coups ! \n\n", coupsTente);

          }

         } while(nombreMystere != nombreEntre);
         printf("Voulez vous continuez ? 1 pour oui 0 pour non : ");
         scanf("%ld", &continuerPartie);
    }
    else
    {
        system("PAUSE");   
        return 0
    }
    }

    Merci d'avance pour vos réponses :)
    • Partager sur Facebook
    • Partager sur Twitter
      20 avril 2006 à 0:10:51



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

      int main(int argc, char *argv[])
      {
        const long MAX = 2, MIN = 1;
        long nombreMystere = 0;
        long nombreEntre = 0;
        long coupsTente = 0;
        long continuerPartie = 1;
       
       while (continuerPartie == 1) /* while pas if*/
        { 
        coupsTente=0; /* ca va aller mieux pour la logic du printf a la fin*/
        srand(time(NULL));
        nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

        do {
            coupsTente++;
            printf("Quel est le nombre ? ");
            scanf("%ld",&nombreEntre);
            if(nombreMystere > nombreEntre)
            {
                             printf("C'est plus ! \n\n");
            }
            if(nombreMystere < nombreEntre)
            {
                             printf("C'est moins ! \n\n");
            }
            if(nombreMystere == nombreEntre)
            {
                             printf("Vous avez gagne en %ld coups ! \n\n", coupsTente);

            }

           } while(nombreMystere != nombreEntre);
           printf("Voulez vous continuez ? 1 pour oui 0 pour non : ");
           scanf("%ld", &continuerPartie);
      }
      return 0;
      }



      Problème de logique. Voir les commentaires.
      • Partager sur Facebook
      • Partager sur Twitter
        20 avril 2006 à 0:11:18

        C'est une erreur de logique dans ton code .tu vérifies continuerPartie == 1 une seule fois , au démarrage. il faut que ce if soit compris dans ta boucle.
        • Partager sur Facebook
        • Partager sur Twitter
          20 avril 2006 à 0:32:03

          je pense qu'il y a une erreur là:
          if(nombreMystere > nombreEntre)
                {
                                 printf("C'est plus ! \n\n");
                }
                if(nombreMystere < nombreEntre)
                {
                                 printf("C'est moins ! \n\n");
                }
                if(nombreMystere == nombreEntre)
                {
                                 printf("Vous avez gagne en %ld coups ! \n\n", coupsTente);


          faudrait-il pas mettre ?
          if(nombreMystere > nombreEntre)
                {
                                 printf("C'est plus ! \n\n");
                }
                else if(nombreMystere < nombreEntre)
                {
                                 printf("C'est moins ! \n\n");
                }
                else(nombreMystere == nombreEntre)
                {
                                 printf("Vous avez gagne en %ld coups ! \n\n", coupsTente);


          amuse toi bien:)
          • Partager sur Facebook
          • Partager sur Twitter
            20 avril 2006 à 0:38:15

            Merci bien :)

            Pour corbeau 3 if sont pareil que 2 if et 1 else ou 1 if 1 elseif et 1 else :)
            • Partager sur Facebook
            • Partager sur Twitter
              20 avril 2006 à 0:50:13

              Ha oki autant pr moi chiculotte mais bon c plus lisible enfin pour moi lool!
              bonne programmation
              • Partager sur Facebook
              • Partager sur Twitter

              TP n°1 : un scanf n'est pas interprété

              × 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