Erreur que je ne comprend pas Code Blocks

Résolu/Fermé
supertomtom Messages postés 316 Date d'inscription jeudi 29 octobre 2009 Statut Membre Dernière intervention 28 novembre 2010 - 8 avril 2010 à 20:56
twiiiix Messages postés 325 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 - 9 avril 2010 à 22:58
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.



A voir également:

4 réponses

twiiiix Messages postés 325 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 56
8 avril 2010 à 23:03
il n'y a pas marqué la ligne de l'erreur ?
tu as raison ces erreurs sont souvent des oublie de point virgule ^^ .
0
twiiiix Messages postés 325 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 56
8 avril 2010 à 23:04
j'ai compilé et code::block me dis que l'erreur est a la dernière ligne.
0
twiiiix Messages postés 325 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 56
Modifié par twiiiix le 8/04/2010 à 23:20
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
supertomtom Messages postés 316 Date d'inscription jeudi 29 octobre 2009 Statut Membre Dernière intervention 28 novembre 2010 83
9 avril 2010 à 16:37
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
twiiiix Messages postés 325 Date d'inscription jeudi 14 janvier 2010 Statut Membre Dernière intervention 25 janvier 2014 56
9 avril 2010 à 22:58
De rien^^
0