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 ?

#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

  1. 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
    1. Contributeur
      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
      1. 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
      2. Contributeur
        en effet, c'était un beau plantage à l'execution qui s'annoncait. Sous windows 98, ca aurai pu être un écran bleu ;)
        0
      3. 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