Supprimer un message
Raison de suppression du message (envoyée à l'utilisateur)

Voulez vous réellement supprimer ce message?  


crodilus
Bonjour à tous et à toutes après quelques jours de travail seul et un bon nombre de questions auxquelles j'ai su répondre par moi même :huit: il y en a une que je n'arrive quand même pas à résoudre :angry: !!

L'exercice que j'ai fait consistait à transformer ce programme ci :



  1. #include <stdio.h> 
  2. #include <stdlib.h> 
  3. #include <time.h> 
  4. int main ( int argc, char** argv ) 
  5.     int nombreMystere = 0, nombreEntre = 0
  6.     const int MAX = 100, MIN = 1
  7.     // Génération du nombre aléatoire 
  8.     srand(time(NULL)); 
  9.     nombreMystere = (rand() % (MAX - MIN + 1)) + MIN; 
  10.     /* La boucle du programme. Elle se répète tant que l'utilisateur 
  11. n'a pas trouvé le nombre mystère */ 
  12.     do 
  13.     { 
  14.         // On demande le nombre 
  15.         printf("Quel est le nombre ? "); 
  16.         scanf("%d", &nombreEntre); 
  17.         // On compare le nombre entré avec le nombre mystère 
  18.         if (nombreMystere > nombreEntre) 
  19.             printf("C'est plus !\n\n"); 
  20.         else if (nombreMystere < nombreEntre) 
  21.             printf("C'est moins !\n\n"); 
  22.         else 
  23.             printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n"); 
  24.     } while (nombreEntre != nombreMystere); 
  25.     return 0
  26. }


En un programme qui comporterait deux fonction : genereNombre et NombreMystere.

Voici se que j'ai fait :

  1. #include <stdio.h> 
  2. #include <stdlib.h> 
  3. #include <time.h> 
  4. int genereNombre () 
  5. int nombre=0
  6. const int MAX = 100, MIN = 1
  7. srand (time(NULL)); 
  8. nombre = (rand () % (MAX - MIN + 1)) + MIN; 
  9. return nombre; 
  10. int compareNombres (nombreEntre,nombreMystere) 
  11. int compteur=0
  12.     do 
  13. printf("\nQuel est le nombre ? "); 
  14. scanf("%d", &nombreEntre); 
  15. if (nombreMystere > nombreEntre) 
  16. printf("\nC'est plus !\n"); 
  17. else if (nombreMystere < nombreEntre) 
  18. printf("\nC'est moins !\n"); 
  19. else 
  20. printf ("\nBravo, vous avez trouve le nombre mystere en %d coups !!!\n\n", compteur); 
  21. compteur++; 
  22. while (nombreEntre != nombreMystere); 
  23. return nombreEntre; 
  24. int main ( int argc, char** argv ) 
  25. int nombreMystere = 0, nombreEntre = 0
  26. const int MAX = 100, MIN = 1
  27. nombreMystere = genereNombre(MIN, MAX); 
  28. printf("Bienvenue dans le jeu du nombre mystere !\n\nLe principe est tres simple, l'ordinateur va enregistrer un nombre entre 0 et \n100 et vous devrez le trouver !\n"); 
  29. do 
  30. compareNombres(nombreEntre, nombreMystere); 
  31. while (nombreEntre != nombreMystere); 
  32. return 0
  33. }


En faite au début j'ai mis mon
  1. printf("\nQuel est le nombre ? "); 
  2. scanf("%d", &nombreEntre);


dans la boucle do...while de la fonction int main mais le programme ne s'arrêtait pas de dire c'est plus ou c'est moins lorsque je tapais un nombre. J'ai résolu le problème en l'injectant dans la fonction compareNombres.

J'aimerais savoir pourquoi cela ne fonction pas lorsque c'est placé dans la boucle do...while de la fonction int main ??

Car je ne vois pas d'où vient le problème, mon nombreMystère et mon nombreEntre sont tout les deux définis lorsqu'ils vont être injecter dans la fonction generenombre.

Amicalement crodilus.
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?