Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème avec la fonction aléatoire

svp

Sujet résolu
    8 janvier 2006 à 22:05:19

    Alors voilà, je sais que ça va souler tout le monde parce que tout le monde à déjà vu ça X fois, mais j'ai un petit problème avec ce code :
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>

    int genereNombre(long MIN,long MAX);
    void compareNombres(long nombreEntre, long nombreMystere);


    int main ( int argc, char** argv )
    { 
        long niveau;
        long nombreMystere, nombreEntre = 0;
        long MAX = 0, MIN = 0;
        long rejouer;
    do
    {
        system("CLS");
        printf("Veuillez choisir votre niveau\n\t\t"
               "1, entre 0 et 50 \n\t\t"
               "2, entre 0 et 100 \n\t\t"
               "3, entre 0 et 200 \n");
        scanf("%ld", &niveau);

        if(niveau = 1)
        {
        //On génère le nombre aléatoire
        genereNombre(1, 50);
        do
        {
            // On demande le nombre
            printf("Quel est le nombre ? ");
            scanf("%ld", &nombreEntre);

            // On compare le nombre entré avec le nombre mystère
            compareNombres(nombreEntre, nombreMystere);

        } while (nombreEntre != nombreMystere);
        printf("Bravo, vous avez trouve le nombre Mystere \n\n");
        }
       
       
        else if(niveau = 2)
            {
        //On génère le nombre aléatoire
        genereNombre(1, 100);
        do
        {
            // On demande le nombre
            printf("Quel est le nombre ? ");
            scanf("%ld", &nombreEntre);

            // On compare le nombre entré avec le nombre mystère
            compareNombres(nombreEntre, nombreMystere);

        } while (nombreEntre != nombreMystere);
        printf("Bravo, vous avez trouve le nombre Mystere \n\n");
        }
       
       
        else if(niveau = 3)
        {
        //On génère le nombre aléatoire
        genereNombre(1, 200);
        do
        {
            // On demande le nombre
            printf("Quel est le nombre ? ");
            scanf("%ld", &nombreEntre);

            // On compare le nombre entré avec le nombre mystère
            compareNombres(nombreEntre, nombreMystere);

        } while (nombreEntre != nombreMystere);
        printf("Bravo, vous avez trouve le nombre Mystere \n\n");
        }
        printf("Voulez vous rejouer ??"
               "0 : oui"
               "1 : non");
        scanf("%ld", &rejouer);
       
    }while(rejouer = 0);
       
        system("PAUSE");
    }



    int genereNombre(long MIN,long MAX)
    {   
        long nombreMystere;
        srand(time(NULL));
        (rand() % (MAX - MIN + 1)) + MIN;
        return nombreMystere;
    }

    void compareNombres(long nombreEntre, long nombreMystere)
    {
        if(nombreEntre < nombreMystere)
        {
             printf("Votre nombre est trop petit\n");
        }
        else if(nombreEntre > nombreMystere)
        {
             printf("Votre nombre est trop grand\n");
        }
    }

    En fait, quand le nombreMystere est donné et bah c'est toujours le même c'est toujours 96, et en plus la boucle ne fonctionne pas :s
    alors si quelqu'un pouvait me venir en aide, ça serait sympa, merci
    • Partager sur Facebook
    • Partager sur Twitter
      8 janvier 2006 à 22:14:12

      Pour la boucle tu as mis "=" à la place de "==".
      • Partager sur Facebook
      • Partager sur Twitter
        8 janvier 2006 à 22:17:47

        Effectivement c'était ça pour la boucle :$ j'ai pas fait très attention maintenant reste à savoir pourquoi ça me met 96 au lieu d'un nombre aléatoire :p
        • Partager sur Facebook
        • Partager sur Twitter
          8 janvier 2006 à 22:44:59

          ben c'est pasque tu fais un peu n'importe quoi :D
          Tu dois mettre que nombreMystere=genereNombre(x,y);
          sinon, quand tu fais genereNombre(x,y); simplement comme ca, ben la valeur de retour (ton nb mystère) est renvoyé mais n'est assigné à aucune variable.
          Fais attention, je pense que tu n'as pas tout à fait saisis la portée des variables ;)
          • Partager sur Facebook
          • Partager sur Twitter
            8 janvier 2006 à 23:14:12

            C'est aussi que ton srand() ne dois être fait qu'une seule fois, au début du script.

            http://siteduzero.com/forum-83-11486-95340.html#r95340

            Il faut donc que tu mettes ton srand() une seule fois, et pas à chaque appel de la fonction.
            • Partager sur Facebook
            • Partager sur Twitter
              9 janvier 2006 à 18:12:58

              okay okay, je viens de comprendre, merci pour l'explication du srand(). :D
              mais euh sinon pour les variables, bah en fait, je pensais que ça me ressortait la variable mais en fait, j'avais oublié le chap sur les fonctions et le fait que ça je ne pouvais plus réutiliser la variable ;) enfin en tout cas merci maintenant ça marche ;) thx :D
              • Partager sur Facebook
              • Partager sur Twitter

              problème avec la fonction aléatoire

              × 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