Mon code

Bonjour,

j'ai commencer a faire un programme nommé 'nombre mystère' qui demande un nombre aléatoire compris entre 1 et 100 et qui compte le nombre des coups faits pour trouver ce nombre mystère, puis j'ai demandé a la fin si l'utilisateur veut recommencer le jeu , en répondant par 'o' ou 'n' (oui ou non) a part s'il tape autre caractère que 'o' et 'n' on lui redemande s'il veut recommencer le jeu ..le problème que j'ai rencontré c 'est que quand je demande à l'utilisateur s'il veut recommencer et qu'il ne tape ni 'o' ni 'n' , le message "voulez-vous recommencer le jeu" s'affiche plusieurs fois et sans arrêt...voilà donc mon code si quelqu'un connait par hasard l'erreur ou la solution de ce problème .


#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <Windows.h>

int main()
{
const int MAX = 100, MIN = 1 ;
int nombreMystere=0 , nombreAecrire=0, comp=0;
char rep= ' ' ;


srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
do
{
do
{
printf ("Saisir un Nombre Aleatoir \n");
scanf("%d", &nombreAecrire);
comp++;

if (nombreAecrire < nombreMystere)
printf(" c'est +++++ \n");
else if (nombreAecrire > nombreMystere)
printf (" c'est ----- \n");
else

printf("Bravoo vous avez trouvé le nombre mystere en %d",comp,"COUPS!!");
}

while(nombreAecrire != nombreMystere);
while ( rep !='n' && rep!='o')
{
printf ("voulez-vous recommencer le jeu???");
scanf(&rep);

}

}
while ( rep =='o');

System("pause);
}


j'espère que mon explication est bien claire ...... Merci

2 réponses

  1. ça a marché ^^ ... de ta part je peux savoir ce que fait ces deux Getchar(); avant et après scanf ...Merciiii!!!
    1. Contributeur
      Lorsque tu appuies sur la touche entrée, il va se loger dans le buffer clavier.
      Il faut donc l'enlever avant de tomber sur scanf("%c",...) sinon ta variable vaudra '\n' (touche entrée).
  2. Contributeur
    Quelques fautes :
    scanf(&rep); N'existe pas. Essaie plutôt : scanf("%c",&rep);
    Ensuite, n'oublie pas de mettre getchar(), juste avant ton scanf("%c",&rep); et juste après.
    Donc :
    getchar();
    scanf("%c",&rep);
    getchar();

    System("pause); T'as oublié un guillemet.

    Et enfin tu as oublié return 0; à la fin.