Boucle qui ne marche pas (langage C)
Résolu
Bonjour,
J'essaye de faire un jeu "plus ou moins" en suivant le tuto du site de zéro, mais en essayant de l'améliorer, je tombe sur un problème : quoique je fasse, je n'arrive pas à faire une boucle correct pour revenir au début, le jeu "plante".
Pourriez vous m'aider ?
Merci d'avance.
J'essaye de faire un jeu "plus ou moins" en suivant le tuto du site de zéro, mais en essayant de l'améliorer, je tombe sur un problème : quoique je fasse, je n'arrive pas à faire une boucle correct pour revenir au début, le jeu "plante".
Pourriez vous m'aider ?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ( int argc, char** argv )
{
srand(time(NULL));
const int MAX = 100, MIN = 1;
int nombreEntrer = 0, rejouer = 1, compteur = 0;
int nombreMystere = 0, nombreDePartie = 0;
{
for ( nombreMystere = 0 ; rejouer != 0 ; nombreDePartie++)
{
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
for ( compteur = 0 ; nombreEntrer != nombreMystere && rejouer != 2 ; compteur++)
{
printf("Quel est le nombre mystere ? ");
scanf("%d", &nombreEntrer);
if (nombreEntrer < nombreMystere && nombreEntrer != 0)
printf("\nTu es en dessous.\n\n");
else if (nombreEntrer > nombreMystere && nombreEntrer != 0)
printf ("\nTu es au dessus.\n\n");
else if (nombreEntrer == 0)
{printf("\nTu nous quittes ? Je suis triste. ='( Valides tu, en tapant 0, ton choix ? ");
scanf("%d", rejouer);}
else
printf("\n\nBravo ! tu as reussi, le nombre est bien %d ! Tu as reussi en %d coups.\n\n", nombreMystere, compteur);
}
printf("Veux tu refaire une partie ? 1 pour oui, 0 pour non.");
scanf("%d%", rejouer);
}
printf ("Dommage. Reviens Vite ! ");
}
}
Merci d'avance.
2 réponses
-
dans ta boucle
for ( compteur = 0 ; nombreEntrer != nombreMystere && rejouer != 2 ; compteur++)
change ton 2 en 0
sinon
ton printf("\nTu nous quittes ? Je suis triste. ='( Valides tu, en tapant 0, ton choix ? ");
n'aura pas de sens puisque tu veux quitter si tu tapes 0 et normalement c'est bon -
ContributeurBonjour,
En plus du problème de cohérence susmentionné, je rajouterai :
scanf("%d", rejouer);
Ton compilateur a ou aurait dû crier. Le deuxième argument doit être une adresse. Tu aurais donc dû mettre : scanf("%d",&rejouer);
Cdlt,