Erreur que je ne comprend pas Code Blocks
Résolu
supertomtom
Messages postés
316
Date d'inscription
Statut
Membre
Dernière intervention
-
twiiiix Messages postés 325 Date d'inscription Statut Membre Dernière intervention -
twiiiix Messages postés 325 Date d'inscription Statut Membre Dernière intervention -
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.
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:
- Erreur que je ne comprend pas Code Blocks
- Code blocks - Télécharger - Langages
- Code ascii - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
4 réponses
il n'y a pas marqué la ligne de l'erreur ?
tu as raison ces erreurs sont souvent des oublie de point virgule ^^ .
tu as raison ces erreurs sont souvent des oublie de point virgule ^^ .
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^^.
#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^^.