Partage
  • Partager sur Facebook
  • Partager sur Twitter

boucle sans fin

losque je frappe une lettre

Sujet résolu
    8 juin 2006 à 22:46:54

    j'ai une boucle do ... while et quand je frappe une lettre au lieu d'un chiffre le programme par en boucle sans fin pourquoi et peut-on empecher l'utilisateur de renter un lettre ou autre caractere qu'un chiffre

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

    int main()
    {


    long nbMystere = 0, nbEntre;
    long max = 0, compteur = 1;
    const int MIN = 1;
    int niveau = 0;

    // choisir le niveau de difficulte
    // boucle qui se repete tant que l'on entre pas le chiffre 1 ou 2 ou 3
       do
       {
           printf ("Choisir un niveau de difficulte\n\n");
           printf ("1 - nombre entre 1 et 100\n");
           printf ("2 - nombre entre 1 et 500\n");
           printf ("3 - nombre entre 1 et 1000\n\n");
           scanf ("%d", &niveau);
           if (niveau == 1)
           max = 100;
           else if (niveau == 2)
           max = 500;
           else if (niveau == 3)
           max = 1000;
           else
           printf ("entre un niveau de 1 a 3 S.V.P.\n\n");
       }

    while (niveau != 1 ^ niveau != 2 ^ niveau != 3);


       // Génération du nombre aléatoire

        srand(time(NULL));
        nbMystere = (rand() % (max - MIN + 1)) + MIN;

            // boucle qui se repete tant que le nb mystere n'est pas trouvé

          do
          {
              if (compteur == 1)
              {
              printf ("     \n\n%lder essai\n\n", compteur);
              compteur++;
              }
              else
              {
              printf ("     \n\n%lde essai\n\n", compteur);
              compteur++;
              }
              printf ("quelle est le nombre mystere? ");
              scanf ("%ld", &nbEntre);
              if (nbMystere > nbEntre)
              printf ("Le nombre mystere est plus grand!\n\n");
              else if (nbMystere < nbEntre)
              printf ("Le nombre Mystere est plus petit!\n\n");
              else
              printf ("\n\nBravo! vous avez trouve le nombre mystere!\n\n");

          }
          while (nbMystere != nbEntre);






            return 0;
    }
    • Partager sur Facebook
    • Partager sur Twitter
      8 juin 2006 à 22:49:10

      Citation : strob73

      j'ai une boucle do ... while et quand je frappe une lettre au lieu d'un chiffre le programme par en boucle sans fin pourquoi et peut-on empecher l'utilisateur de renter un lettre ou autre caractere qu'un chiffre


      Problème récurrent de mauvais choix ou de mauvaise utilisation de la fonction de saisie...

      http://mapage.noos.fr/emdel/notes.htm#saisie
      http://mapage.noos.fr/emdel/notes.htm#fichiers
      • Partager sur Facebook
      • Partager sur Twitter
      Music only !

      boucle sans fin

      × 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