Boucle qui ne marche pas (langage C)

Résolu
Djee -  
 Djee -
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 ?

#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.
A voir également:

2 réponses

mic170 Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,
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,
0
loupius Messages postés 697 Date d'inscription   Statut Membre Dernière intervention   148
 
Ton compilateur a ou aurait dû crier
Oui, à condition qu'il eût précisé '-Wall' et qu'il eût lu le rapport de compilation et qu'il eût tenu compte du warning indiqué... ah que de conditions !
Bonne soirée à toi.
0
Nabla's Messages postés 18203 Date d'inscription   Statut Contributeur Dernière intervention   3 193
 
en effet, c'était un beau plantage à l'execution qui s'annoncait. Sous windows 98, ca aurai pu être un écran bleu ;)
0
Djee
 
Effectivement, c'est le "&" manquant qui faisait planter le jeu. J'ai utilisé deux IDE différents (code::blocks et Dev-C++) pourtant, et aucun message ni d'erreur ni de warning.

Merci de votre aide, je vais pouvoir continuer à l'améliorer maintenant.
0