Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C++] rand() me renvoie toujours 42 !

Une très grosse coïncidence ?

Sujet résolu
Anonyme
    2 décembre 2006 à 2:14:00

    Bonsoir,

    J'ai fait un petit jeu complètement nul mais qui me sert à m'entrainer au C++ :) dans ce programme j'utilise rand() pour générer un nombre aléatoire, voici le morceau de code :
    cout << "\t\t\t\t    MYSTERE" << endl << "Quelle niveau de difficulte ?" << endl;
    cout << "\t1] Tres facile" << endl << "\t2] Facile" << endl << "\t3] Moyen" << endl;
    cout << "\t4] Difficile" << endl << "\t5] Tres difficile" << endl << "Choix : ";
    cin >> diff;

    switch(diff)
    {
          case 1: nb_rand = 25break;
          case 2: nb_rand = 50break;
          case 3: nb_rand = 100; break;
          case 4: nb_rand = 200; break;
          case 5: nb_rand = 500; break;

          default:
              cout << endl << "ERREUR" << endl;
              system("PAUSE");
              return 1;
    }
    nombre = (rand() % (nb_rand - 1 + 1)) + 1;
    Mais voilà : à chaque partit le nombre est toujours 42 o_O

    Comment faire SVP ?

    Merci d'avance :)

    • Partager sur Facebook
    • Partager sur Twitter
      2 décembre 2006 à 8:43:51

      Il faut initialiser le générateur de nombres pseudo-aléatoires en mettant srand(time(NULL));
      • Partager sur Facebook
      • Partager sur Twitter
        2 décembre 2006 à 10:04:58

        non j'ai joué à ton jeu je trouve qu'il est super!!
        • Partager sur Facebook
        • Partager sur Twitter
          2 décembre 2006 à 11:11:20

          Citation : clanki

          non j'ai joué à ton jeu je trouve qu'il est super!!



          Ca répond vachement à la question initiale ... :-°
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            2 décembre 2006 à 20:31:10

            Citation : Pole

            Il faut initialiser le générateur de nombres pseudo-aléatoires en mettant srand(time(NULL));

            Merci ça marche :)

            ++
            • Partager sur Facebook
            • Partager sur Twitter
              31 mars 2008 à 13:58:39

              J'ai la même seulement j'avais défini mon rand_max à 100 et après l'utilisation du srand il ne le respecte plus, une solution?
              • Partager sur Facebook
              • Partager sur Twitter
                31 mars 2008 à 15:59:27

                Citation : Bilbax

                J'ai fait un petit jeu complètement nul mais qui me sert à m'entrainer au C++ :)


                Et c'est pour ça que tu postes dans le forum C. Logique...
                Project   : Forums
                Compiler  : GNU GCC Compiler (called directly)
                Directory : D:\dev\forums\
                --------------------------------------------------------------------------------
                Switching to target: default
                Compiling: main.c
                main.c:1: error: syntax error before '<<' token
                main.c:16: error: syntax error before string constant
                main.c:16: warning: type defaults to `int' in declaration of `system'
                main.c:16: warning: function declaration isn't a prototype
                main.c:16: warning: data definition has no type or storage class
                main.c:19: warning: type defaults to `int' in declaration of `nombre'
                main.c:19: warning: implicit declaration of function `rand'
                main.c:19: error: `nb_rand' undeclared here (not in a function)
                main.c:19: warning: data definition has no type or storage class
                Process terminated with status 1 (0 minutes, 1 seconds)
                3 errors, 6 warnings


                Citation : tonylafouine

                J'ai la même seulement j'avais défini mon rand_max à 100 et après l'utilisation du srand il ne le respecte plus, une solution?


                Tu squattes une discussion. C'est mal. Si tu as une question, pose la dans une nouvelle discussion et surtout montre le code, on est pas devins...
                • Partager sur Facebook
                • Partager sur Twitter
                Music only !

                [C++] rand() me renvoie toujours 42 !

                × 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