Erreur que je ne comprend pas Code Blocks

Résolu
Bonjour,
Je suis sous code blocks et je vien de creer le jeu du + ou - .Il marchait tres bien et j'ai décidé d'apporter une amélioration : l'affichage du niveau en fonction du nombre de coups pour trouver.
A la fin du debuggage j'ai une erreur : " error : syntax error before '} token "
Et je ne comprend pas comment corriger cette erreur (surtout que ce doit juste etre un point de virgule en trop ou qui manque XP)
Si vous pouviez m'aider ce serait super ! Voila mon programme :

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

int main ( int argc, char** argv )
{

int nombreMystere = 0, nombreEntre = 0, coups=1, choix1=0;

printf(" Choisissez votre niveau : \n 1.Facile : Entre 0 et 100\n 2.Difficile : Entre 1 et 1000\n 3.Diabolique : Entre -9999 et 9999\n 4.Deux joueurs\n\n\tNe tapez pas autre chose...\n\n\n Mon choix est le choix: ");
scanf("%d" ,&choix1);
if ( choix1==1)
{
printf("Le nombre mystere est compris entre 1 et 100\n\n");
int const MAX=100,MIN=0;
srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
}
else if ( choix1==2 )
{
printf(" le nombre mystere est compris entre 1 et 1000\n\n");
int const MAX=1000,MIN=0;
srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
}

else if( choix1==3)
{
printf(" Le nombre mystere est entre -9999 et 9999\n\n");
int const MAX=9999,MIN=-9999;
srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
}
else if ( choix1==4)
{
printf ("Le joueur 1 tapez un nombre: ");
scanf("%d",&nombreMystere);
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");

}
else
{
int compteur = 0;

while (compteur < 50000)
{
printf(" **********VOUS ETES UN IDIOT !!!!!!!!!!!!!*********\n");
compteur++;
}

return 0;

}

do
{
// On demande le nombre
printf("Quel est le nombre ? ");
scanf("%d", &nombreEntre);

// On compare le nombre entré avec le nombre mystère

if (nombreMystere > nombreEntre)
{printf("C'est plus !\n\n");
coups++;
}
else if (nombreMystere < nombreEntre)
{
printf("C'est moins !\n\n");
coups++;
}
else
{

printf ("\n\n****Bravo, vous avez trouve le nombre mystere en %d coups !!!****\n\n Le nombre mystere est donc %d \n\n\n\n\n", coups,nombreMystere);
if ( choix1==1)
{
if (coups<10)
{
printf("Vous etes un Champion :-D \n\n\n !");
}
else if (11<coups<20)
{
printf("Votre niveau est bon :-)\n\n\n");
}
else if ( 21<coups<35 )
{
printf("Votre niveau est moyen... :-( \n\n\n ");
}
else if ( coups>36)
{
printf("Vous etes tres mauvais... :-[ \n\n\n");
}
}

else if ( choix1==2)
{
if (coups<20)
{
printf("Vous etes un Champion :-D \n\n\n !");
}
else if (21<coups<435)
{
printf("Votre niveau est bon :-)\n\n\n");
}
else if ( 36<coups<50 )
{
printf("Votre niveau est moyen... :-( \n\n\n ");
}
else if ( coups>50)
{
printf("Vous etes tres mauvais... :-[ \n\n\n");
}
}

while (nombreEntre != nombreMystere);
system("pause");
}

}

}

Merci d'avance a tous et bonne fin de journée.

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. il n'y a pas marqué la ligne de l'erreur ?
    tu as raison ces erreurs sont souvent des oublie de point virgule ^^ .
    1. j'ai compilé et code::block me dis que l'erreur est a la dernière ligne.
      1. essaye ça :
        #include <stdio.h>
        #include <stdlib.h>
        #include <time.h>

        int main ( int argc, char** argv )
        {

        int nombreMystere = 0, nombreEntre = 0, coups=1, choix1=0;

        printf(" Choisissez votre niveau : \n 1.Facile : Entre 0 et 100\n 2.Difficile : Entre 1 et 1000\n 3.Diabolique : Entre -9999 et 9999\n 4.Deux joueurs\n\n\tNe tapez pas autre chose...\n\n\n Mon choix est le choix: ");
        scanf("%d" ,&choix1);
        if ( choix1==1)
        {
        printf("Le nombre mystere est compris entre 1 et 100\n\n");
        int const MAX=100,MIN=0;
        srand(time(NULL));
        nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
        }
        else if ( choix1==2 )
        {
        printf(" le nombre mystere est compris entre 1 et 1000\n\n");
        int const MAX=1000,MIN=0;
        srand(time(NULL));
        nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
        }

        else if( choix1==3)
        {
        printf(" Le nombre mystere est entre -9999 et 9999\n\n");
        int const MAX=9999,MIN=-9999;
        srand(time(NULL));
        nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
        }
        else if ( choix1==4)
        {
        printf ("Le joueur 1 tapez un nombre: ");
        scanf("%d",&nombreMystere);
        printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");

        }
        else
        {
        int compteur = 0;

        while (compteur < 50000)
        {
        printf(" **********VOUS ETES UN IDIOT !!!!!!!!!!!!!*********\n");
        compteur++;
        }

        return 0;

        }

        do
        {
        // On demande le nombre
        printf("Quel est le nombre ? ");
        scanf("%d", &nombreEntre);

        // On compare le nombre entré avec le nombre mystère

        if (nombreMystere > nombreEntre)
        {printf("C'est plus !\n\n");
        coups++;
        }
        else if (nombreMystere < nombreEntre)
        {
        printf("C'est moins !\n\n");
        coups++;
        }
        else
        {

        printf ("\n\n****Bravo, vous avez trouve le nombre mystere en %d coups !!!****\n\n Le nombre mystere est donc %d \n\n\n\n\n", coups,nombreMystere);
        if ( choix1==1)
        {
        if (coups<10)
        {
        printf("Vous etes un Champion :-D \n\n\n !");
        }
        else if (11<coups<20)
        {
        printf("Votre niveau est bon :-)\n\n\n");
        }
        else if ( 21<coups<35 )
        {
        printf("Votre niveau est moyen... :-( \n\n\n ");
        }
        else if ( coups>36)
        {
        printf("Vous etes tres mauvais... :-[ \n\n\n");
        }
        }

        else if ( choix1==2)
        {
        if (coups<20)
        {
        printf("Vous etes un Champion :-D \n\n\n !");
        }
        else if (21<coups<435)
        {
        printf("Votre niveau est bon :-)\n\n\n");
        }
        else if ( 36<coups<50 )
        {
        printf("Votre niveau est moyen... :-( \n\n\n ");
        }
        else if ( coups>50)
        {
        printf("Vous etes tres mauvais... :-[ \n\n\n");
        }
        }

        }

        } while (nombreEntre != nombreMystere);
        system("pause");

        }

        je crois que le problème viens de la boucle do...while,le while n'est pas bien placé.

        je ne sais pas si j'ai raison, mais c'est le TP du SDZ non ?
        Moi j'en suis au pendu et j'ai vraiment galéré.
        En partant, au printf du "vous êtes un champion" le ! est après les \n , c'est pas grave mais c'est toujours plus beau^^.
        1. Super merci sa marche. Oui c'est bien le tp du SDZ mais hier j'ai pensé a ajouté cette modification : l'affichage du niveau en fonction du nombre de coups .
          Merci beaucoup.
          1. De rien^^