Partage
  • Partager sur Facebook
  • Partager sur Twitter

par rapport au jeu plus ou moins

un ptit bug que je ne saisis pas =)

    30 décembre 2005 à 1:04:53

    Bonjour
    après avoir tout bien lu mon cours de C sur le jeu plus moins
    j'ai remarqué une erreur des plus embetantes...

    while (test==0)
      {
      printf("Quel est le nombre ? ");
      scanf("%ld", &nombreJoueur);
      if (nombreJoueur==nombreMystere)
         {
         coup++;
         printf("\nBravo, vous avez trouve le nombre mystere en %ld coup(s)!!!\n", coup);
         test=1;
         }
      else if (nombreJoueur>nombreMystere)
         {
         printf("\nC'est moins !\n\n");
         coup++;
         }
      else if (nombreJoueur<nombreMystere)
         {
         printf("\nC'est plus !\n\n");
         coup++;
         }
      else
         {
         printf("INCORRECT");
         }
      }


    j'ai ce morceau de code qui devrait vous suffir normalement =)
    Lorsque le joueur tape des lettres et bien le programme me fait une boucle infini en m'écrivant:

    Quel est le nombre ?
    C'est plus !
    Quel est le nombre ?
    C'est plus !
    Quel est le nombre ?
    C'est plus !
    Quel est le nombre ?
    C'est plus !
    Quel est le nombre ?
    C'est plus !
    Quel est le nombre ?
    C'est plus !


    si quelqu'un est capable de m'expliquer cela ça serait sympa :p

    merci d'avance ;)
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      30 décembre 2005 à 9:29:43

      Ben le joueur est pas censé taper des lettres, s'il le fait ça plante come tu viens de le dire. Par contre, je crois que quelqu'un (je ne sais plus qui) a fait un message à propos de ça, pour éviter les plantages
      • Partager sur Facebook
      • Partager sur Twitter
        30 décembre 2005 à 10:56:49

        faux rajouter ca je croit

        Citation : code

        default:
        printf(" Vous n'avez pas rentre un nombre correct.");
        break;


        a la fin apres

        Citation : autre code

        if (nombreMystere1 > nombreEntre1)
        printf("Desoler ce n'est pas le bon nombre c'est plus !\n\n");
        else if (nombreMystere1 < nombreEntre1)
        printf("Desoler ce n'est pas le bon nombre c'est moins !\n\n");
        else // Si le nombre n'est ni inférieur ni supérieur, c'est qu'il est égal, donc c'est bon !
        printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n");
        } while (nombreEntre1 != nombreMystere1);
        break;

        • Partager sur Facebook
        • Partager sur Twitter
          30 décembre 2005 à 11:38:25

          mettre un default après un if...else? xD
          c'est possible sa? :p
          • Partager sur Facebook
          • Partager sur Twitter
            30 décembre 2005 à 11:49:37

            non en fait ca plante car :
            tu tapes une lettre, or le programme attends un chiffre donc il passe le premier scanf et continue pour placer la lettre dans une autre variable mais il ne trouve pas ou la placer vu qu'il n'y a aucun scanf sur un caractère.
            il arrive donc a la fin du while et le recommence puisque test = 0. alors il remonte et cherche toujours a casé sa lettre mais ne trouvant toujours pas recommence le while etc...

            voila ce qui se passe :p
            • Partager sur Facebook
            • Partager sur Twitter
              30 décembre 2005 à 11:52:55

              Y a-t-il un moyen de "vider" le scanf ?
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                30 décembre 2005 à 11:54:23

                Oui, mais c'est crade, faites sans.
                • Partager sur Facebook
                • Partager sur Twitter
                  30 décembre 2005 à 11:57:54

                  Faites sans quoi? Sans vider le scanf ou sans scanf? :lol:
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    30 décembre 2005 à 12:03:05

                    et qu'elle est l'alternative de scanf, alors? :euh:
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      30 décembre 2005 à 12:15:35

                      Bah en fait... le pire c'est qu'il y'en a pas de facilement accessible :/
                      • Partager sur Facebook
                      • Partager sur Twitter

                      par rapport au jeu plus ou moins

                      × 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