Erreur que je ne comprend pas Code Blocks

Résolu
supertomtom Messages postés 367 Statut Membre -  
twiiiix Messages postés 342 Statut Membre -
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

  1. twiiiix Messages postés 342 Statut Membre 57
     
    il n'y a pas marqué la ligne de l'erreur ?
    tu as raison ces erreurs sont souvent des oublie de point virgule ^^ .
    0
  2. twiiiix Messages postés 342 Statut Membre 57
     
    j'ai compilé et code::block me dis que l'erreur est a la dernière ligne.
    0
  3. twiiiix Messages postés 342 Statut Membre 57
     
    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^^.
    0
  4. supertomtom Messages postés 367 Statut Membre 83
     
    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.
    0
    1. twiiiix Messages postés 342 Statut Membre 57
       
      De rien^^
      0