Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme TP1

aide please

    14 mai 2006 à 11:30:36

    Bonjour!
    Quand j'execute le programme, n'importe quel nombre est tout de suite juste...
    Voici le code C:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    int main(int argc, char** argv[])
    {
        long nombreMystere = 0, nombreEntree = 0;
        const long MAX = 100, MIN = 1;


        srand(time(NULL));
        nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;


      do
      {     
            printf("Taper un nombre entre 1 et 100: ");
            scanf("%ld", &nombreEntree);
            if (nombreEntree = nombreMystere)
                       printf("Bravo! Vous avez trouve le nombre cache!");
     
            else if (nombreEntree > nombreMystere)
                       printf("C'est moins!");
     
            else if (nombreEntree < nombreMystere)
                       printf("C'est plus!");
                       
      } while (nombreEntree != nombreMystere);
      system("PAUSE");     
      return 0;
    }


    Merci de m'aider.
    • Partager sur Facebook
    • Partager sur Twitter
      14 mai 2006 à 11:35:51

      if (nombreEntree == nombreMystere)

      il faut un 2eme = car sinon ton ordi crois qu'il doit initialiser nombreEntree a nombreMystere, et renvoyer vrai si tout s'est bien passer, et faux si il y a eu une erreur, donc, comme générallement tout ce passe bien, tpon code éxécutait le "if".
      relis le chapitre sur les conditions.

      Essaie ça:

      #include <stdio.h>
      #include <stdlib.h>
      #include <time.h>
      int main(int argc, char** argv[])
      {
          long nombreMystere = 0, nombreEntree = 0;
          const long MAX = 100, MIN = 1;


          srand(time(NULL));
          nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;


        do
        {     
              printf("Taper un nombre entre 1 et 100: ");
              scanf("%ld", &nombreEntree);
              if (nombreEntree == nombreMystere) //rajout du 2eme "="
                         printf("Bravo! Vous avez trouve le nombre cache!");
       
              else if (nombreEntree > nombreMystere)
                         printf("C'est moins!");
       
              else if (nombreEntree < nombreMystere)
                         printf("C'est plus!");
                         
        } while (nombreEntree != nombreMystere);
        system("PAUSE");     
        return 0;
      }
      • Partager sur Facebook
      • Partager sur Twitter
        14 mai 2006 à 11:39:47

        Merci! Grace à toi ça marche nickel! Encore merci! ;)
        • Partager sur Facebook
        • Partager sur Twitter
          14 mai 2006 à 11:44:12

          Citation : mamoru

          Merci! Grace à toi ça marche nickel! Encore merci! ;)


          Non ça ne marche pas "nickel", tape une lettre et pleure.
          • Partager sur Facebook
          • Partager sur Twitter
            14 mai 2006 à 12:06:53

            ouais mais c'est de ta faute si tu tape une lettre alors qu'on demande de taper un nombre ;) .
            • Partager sur Facebook
            • Partager sur Twitter
              14 mai 2006 à 13:52:50

              Citation : le grand schtroumpf

              ouais mais c'est de ta faute si tu tape une lettre alors qu'on demande de taper un nombre ;) .


              Non, c'est un bug quand même.
              • Partager sur Facebook
              • Partager sur Twitter
                14 mai 2006 à 15:12:07

                mais même si tu tape une lettre, c'est sa valeur numérique qui est retenue...
                • Partager sur Facebook
                • Partager sur Twitter
                  14 mai 2006 à 16:28:03

                  Pour ne pas avoir ce problème, au lieu de mettre les nombres en "long" mettez les en "string", comme ca vous pouvez taper des chiffres mais aussi des lettres ^^

                  **Je suis content il ya des fans de naruto !**

                  Edit : oubliez, je n'avais pas vu qu'il y avait des calculs a partir de ces nombres :-°
                  • Partager sur Facebook
                  • Partager sur Twitter
                    14 mai 2006 à 16:34:21

                    Ouais, mais t'as dit n'importe quoi. Non, ce qu'il faut c'est évidement vérifier ce qui est entré, et donc au moins lire la valeur de retour de scanf() (fonction assez dure à utiliser, hein).
                    • Partager sur Facebook
                    • Partager sur Twitter
                      14 mai 2006 à 16:45:00

                      Oui, voila, faire une condition juste après qu'on ai demandé à taper le nombre :
                      Bon je vous met l'exemple en C++, car je ne connaît pas trop le langage C, j'ai appris le C++ et j'en suis resté là, mais si quelqu'un veut s'amuser à le traduire en C ^^ :

                      #include <iostream>
                      using namespace std;

                      int main()
                      {
                         int nbmystere=0;
                         int choix=0;
                         int MAX=100;
                         int MIN=0;

                         nbmystere = (rand() % (MAX - MIN + 1)) + MIN; //Je ne sais pas si ca marche en C++, jamais utilisé

                         do {
                            cout << "Quel est le nombre mystere ?" << endl;
                            cin >> choix;

                            while(choix<0 || choix >100)
                            {
                               cout << "Erreur ! retapez un nombre entre 0 et 100" << endl;
                               cin >> choix;
                            }

                            if(choix<nbmystere)
                               cout << "C'est plus !" << endl;
                            if(choix>nbmystere)
                               cout << "C'est moins !" << endl;
                            if(choix==nbmystere)
                               cout << "Bravo !" << endl;
                         }while(choix!=nbmystere);


                      return 0;
                      }


                      • Partager sur Facebook
                      • Partager sur Twitter

                      Probleme TP1

                      × 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