Partage
  • Partager sur Facebook
  • Partager sur Twitter

TP plus ou moins

probleme avec les fonctions

Sujet résolu
    8 octobre 2007 à 12:28:52

    Bonjour tout le monde.
    Voilà, je suis les cours de M@teo depuis quelques jours et à la fin du chapitre sur les fonctions, M@teo nous donne une fonction main déjà faite et nous demande de la modifier pour utiliser les fonctions :

    Citation : M@teo21

    A vous de créer les 2 fonctions qu'elle utilise : genereNombre (qui génère un nombre aléatoire compris entre MIN et MAX) et compareNombres qui compare le nombre entré au nombre mystère et affiche si c'est plus, si c'est moins, ou si c'est le bon résultat ;)


    C'est donc ce que j'ai fais, mais j'ai un probleme avec le nombre aléatoire generé par l'ordinateur, au lieu d'etre entre 1 et 100 il est entre 100 et 200 oO et je ne comprend pas pourquoi.
    Voilà mon code :


    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <time.h>
    4. // Fonction qui génere le nombre aléatoire.
    5. long genereNombre(long nbmax, long nbmin)
    6. {
    7.     long nombreMystere = 0;
    8.     srand(time(NULL));
    9.     nombreMystere = (rand() % (nbmax - nbmin + 1)) + nbmin;
    10.     return nombreMystere;
    11. }
    12. // Fonction qui compare le nombre entré au nombre mystère.
    13. long compareNombres(long nbEntre, long nbMystere)
    14. {
    15.     if (nbEntre < nbMystere)
    16.         printf("PLus grand !\n");
    17.     else if (nbEntre > nbMystere)
    18.         printf("Plus petit !\n");
    19.     else
    20.         printf("Bravo !!\n");
    21. }
    22. // FONCTION MAIN deja donnée par M@teo21
    23. int main ( int argc, char** argv )
    24. {
    25.     long nombreMystere = 0, nombreEntre = 0;
    26.     const long MAX = 100, MIN = 1;
    27.     // Génération du nombre aléatoire
    28.     nombreMystere = genereNombre(MIN, MAX);
    29.     /* La boucle du programme. Elle se répète tant que l'utilisateur
    30.     n'a pas trouvé le nombre mystère */
    31.     do
    32.     {
    33.         // On demande le nombre
    34.         printf("Quel est le nombre ? ");
    35.         scanf("%ld", &nombreEntre);
    36.         // On compare le nombre entré avec le nombre mystère
    37.         compareNombres(nombreEntre, nombreMystere);
    38.     } while (nombreEntre != nombreMystere);
    39.     system("PAUSE");
    40. }


    Merci de votre aide ^^
    • Partager sur Facebook
    • Partager sur Twitter
      8 octobre 2007 à 12:55:31

      srand(time(NULL)) doit être appelé une seule fois dans tout le programme, tu peux le placer au début du main(). C'est en quelque sorte lui qui permet de générer de l'aléatoire par la suite.
      • Partager sur Facebook
      • Partager sur Twitter
        8 octobre 2007 à 13:31:58

        Citation : Caribou87

        srand(time(NULL)) doit être appelé une seule fois dans tout le programme, tu peux le placer au début du main(). C'est en quelque sorte lui qui permet de générer de l'aléatoire par la suite.


        C'est vrai, mais ça ne répond pas à son problème spécifique...
        1. // Fonction qui génere le nombre aléatoire.
        2. long genereNombre (long nbmax, long nbmin)
        3. {
        4. <...>
        5.    // Génération du nombre aléatoire
        6.    nombreMystere = genereNombre (MIN, MAX);

        Il y a incohérence dans l'ordre des paramètres...
        • Partager sur Facebook
        • Partager sur Twitter
        Music only !
          8 octobre 2007 à 13:34:39

          Ah effectivement oui :p bon je corrige ça tout de suite

          EDIT : Merci ça marche maintenant ^^ faut que je me relise mieux !
          • Partager sur Facebook
          • Partager sur Twitter

          TP 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