Voila un code corrigé avec commentaires :
- include <stdio.h>
- include <stdlib.h>
- include <time.h>
int main(int argc, char *argv[])
{
long nombreMystere = 0, nombreEntre = 0;
long nombreEssais = 0;
short continuer = 1;
const long MAX = 100, MIN = 1;
srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
printf("|||||||||| Plus ou Moins ||||||||||\n\n");
printf("Le nombre mystere est entre 0 et 100.\n");
printf("Vous avez 10 essai. \n\n");
//On utilise un do-while car le joueur doit au moins jouer un coup avant de trouver / se tromper
do
{
//On demande d'entrer le nombre à chaque fois !!
printf("Quel est le nombre mystere ? ");
scanf("%ld", &nombreEntre);
if (nombreMystere > nombreEntre)
printf("C'est plus !\n\n");
else if (nombreMystere < nombreEntre)
printf("C'est moins !\n\n");
else if ( nombreMystere == nombreEntre )
{
printf("Bravo, vous avez trouve le nombre en %ld essais.\n\n" , nombreEssais );
continuer = 0;
}
//On incrémente nombreEssais de 1, peut s'écrire aussi nombreEssais++
nombreEssais = nombreEssais+1;
//Si on dépasse les 5 essais on sort de la boucle
if (nombreEssais == 10)
continuer = 0;
}
//Tant que continuer est à 1, on boucle
while (continuer == 1);
}
Tu avais plusieurs erreurs :
Déjà tu as oublié un point virgule a ton incrémentation, ensuite tu ne demandes pas le nombre mystère dans la boucle, il le demande donc une fois, si c'est pas le bon, ça va boucler 10 fois en repettant que c'est pas le bon.
Enfin j'ai utilisé un test plus simple avec une seule variable et plusieurs test dans la boucle.