Supprimer un 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 il y en a une que je n'arrive quand même pas à résoudre !!
L'exercice que j'ai fait consistait à transformer ce programme ci :
En un programme qui comporterait deux fonction : genereNombre et NombreMystere.
Voici se que j'ai fait :
En faite au début j'ai mis mon
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.
L'exercice que j'ai fait consistait à transformer ce programme ci :
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- int main ( int argc, char** argv )
- {
- int nombreMystere = 0, nombreEntre = 0;
- const int MAX = 100, MIN = 1;
- // Génération du nombre aléatoire
- srand(time(NULL));
- nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
- /* La boucle du programme. Elle se répète tant que l'utilisateur
- n'a pas trouvé le nombre mystère */
- do
- {
- // On demande le nombre
- printf("Quel est le nombre ? ");
- scanf("%d", &nombreEntre);
- // On compare le nombre entré avec le nombre mystère
- if (nombreMystere > nombreEntre)
- printf("C'est plus !\n\n");
- else if (nombreMystere < nombreEntre)
- printf("C'est moins !\n\n");
- else
- printf ("Bravo, vous avez trouve le nombre mystere !!!\n\n");
- } while (nombreEntre != nombreMystere);
- return 0;
- }
En un programme qui comporterait deux fonction : genereNombre et NombreMystere.
Voici se que j'ai fait :
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- int genereNombre ()
- {
- int nombre=0;
- const int MAX = 100, MIN = 1;
- srand (time(NULL));
- nombre = (rand () % (MAX - MIN + 1)) + MIN;
- return nombre;
- }
- int compareNombres (nombreEntre,nombreMystere)
- {
- int compteur=0;
- do
- {
- printf("\nQuel est le nombre ? ");
- scanf("%d", &nombreEntre);
- if (nombreMystere > nombreEntre)
- printf("\nC'est plus !\n");
- else if (nombreMystere < nombreEntre)
- printf("\nC'est moins !\n");
- else
- printf ("\nBravo, vous avez trouve le nombre mystere en %d coups !!!\n\n", compteur);
- compteur++;
- } while (nombreEntre != nombreMystere);
- return nombreEntre;
- }
- int main ( int argc, char** argv )
- {
- int nombreMystere = 0, nombreEntre = 0;
- const int MAX = 100, MIN = 1;
- nombreMystere = genereNombre(MIN, MAX);
- 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");
- do
- {
- compareNombres(nombreEntre, nombreMystere);
- } while (nombreEntre != nombreMystere);
- return 0;
- }
En faite au début j'ai mis mon
- printf("\nQuel est le nombre ? ");
- 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.