Rechercher : dans
Par :

Syntax error before "else" :o

Dernière réponse le 15 sep 2009 à 10:10:08 coleturner, le 17 mar 2008 à 22:01:29 
 Signaler ce message aux modérateurs

Bonjour,
je suis débutant, je viens de crée un mini jeux sur console, mais vrément un tout mini jeux...
voici le code :

/* PLUS ou MOINS
Petit jeux crée par un débutant en programmation
Le but du jeux est de trouver le nombre mystere en un minimun de propositions
*/

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

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

long NombreMistere = 0, NombreEntre = 0; // Déclarer les deux variables
const MAX = 100, MIN = 1; // chiffre MAX et chiffre MIN que peut prendre l'ordi
srand(time(NULL));
NombreMistere = (rand() % (MAX - MIN + 1)) + MIN;

while(NombreEntre)// la boucle en while
{

printf("Quel est le nombre mystere?\n");
scanf("%ld", &NombreEntre);

// les conditions

if(NombreEntre < NombreMistere)
printf("C'est plus !\n\n");

else if(NombreEntre > NombreMistere)
printf("C'est moins !\n\n");
}

else(NombreMistere != NombreEntre) *************************** syntax error before "else"
printf("Bravo, vous avez trouve le nombre Mystere ! ! !\n\n");

system("PAUSE");
return 0;
}


Le probleme c'est que la zone de la more m'affiche : syntax error before "else" le else ou j'ai mis des **** L 33
mais je ne voie pas l'erreur... :o

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « syntax error before "else" :o » dans :
Parse error: syntax error, unexpected $end Voir Lorsque l'on programme en Php, on se retrouve inévitablement un jour devant ce genre d'erreur: Parse error: syntax error, unexpected $end in Command line code on line 1 En français, ça signifie grossièrement: "Erreur d'analyse du code: il y a une...
[PHP] Parse error, unexpected T_STRING, expecting ',' or ';' VoirCette erreur, fréquente, se produit notamment lorsqu'un guillemet est présent dans une chaîne délimitée par ce même type de guillemets, par exemple :
PHP Parse error: unexpected '&lt;' in ... eval()'d code on l VoirSymptômes Lors de l'utilisation de la fonction eval() en PHP, ce dernier se plaint et vous affiche un message de la forme suivante : PHP Parse error: syntax error, unexpected '
Langage C++ - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle ? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non. Ces structures conditionnelles peuvent être associées à des structures qui se répètent...
VBScript - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle ? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0 ou 1 (VBScript associe le mot clé true à...

1

kilian, le 17 mar 2008 à 22:41:21

Salut,

Oui tu mets un else après un while, ça n'a pas de sens...

Répondre à kilian

2

coleturner, le 17 mar 2008 à 22:52:03

Ha ok ... autant pour moi
je viens de le mettre a l'interieur et ... toujours pas, cette fois ça marque :

C:\Dev-Cpp\les projets\Makefile.win [Build Error] [test2.exe] Error 1

et il n'y a aucune ligne sur fond rouge :o

Répondre à coleturner

3

kilian, le 17 mar 2008 à 22:56:28

Et aussi ceci n'a pas non plus de sens:

else(NombreMistere != NombreEntre)


Tu mets un else suivi d'une condition.
Peut être que tu voulais faire un else if.

Répondre à kilian

4

coleturner, le 17 mar 2008 à 23:02:14

A bon?
alors comment je pourrai dire "sinon si le nombre mystere est egale au nombre entre, écrivez bravo...?"
j'ai essayer avec == et ça ne fonctionne pas

Répondre à coleturner

5

kilian, le 17 mar 2008 à 23:09:49

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

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

    long NombreMistere = 0, NombreEntre = 0; // Déclarer les deux variables
    const MAX = 100, MIN = 1; // chiffre MAX et chiffre MIN que peut prendre l'ordi
    srand(time(NULL));
    NombreMistere = (rand() % (MAX - MIN + 1)) + MIN;

    while(NombreMistere != NombreEntre)// la boucle en while
    {

        printf("Quel est le nombre mystere?\n");
        scanf("%ld", &NombreEntre);

        // les conditions

        if(NombreEntre < NombreMistere){
            printf("C'est plus !\n\n");
        }

        else if(NombreEntre > NombreMistere){
            printf("C'est moins !\n\n");
        }

        else {
            printf("Bravo, vous avez trouve le nombre Mystere ! ! !\n\n");
        }
    }



system("PAUSE");
return 0;
}


Tu as testé s'il était plus petit, s'il était plus grand. Si aucun de ces deux cas n'est vrai, alors c'est qu'il est égal, il suffit d'un petit else dans la boucle ;-)

De même, ta boucle méritait cette nouvelle condition: tant que nombreMystere est différent de nombreRentré, on continue. S'ils sont égaux, c'est qu'on a trouvé la solution, donc fini de boucler.

Tu comprends?

Répondre à kilian

6

coleturner, le 18 mar 2008 à 11:05:36

Oui, j'ai compis,
j'ai tout recommancé cette fois en do ... while :

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

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

long NombreMystere = 0, NombreEntre = 0;
const long MAX = 100, MIN = 1;

srand(time(NULL));
NombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

do
{
printf("Entrez le nombre mystere");
scanf("%ld", NombreEntre);
printf("\n");

if (NombreEntre < NombreMystere)
printf("C'est plus\n\n");

else if (NombreEntre > NombreMystere)
printf("C'est moins\n\n");

else
printf("Bravo vous avez trouvez le nombre Mystere\n\n");

} while(NombreEntre != NombreMystere)


system("PAUSE");
return 0;
}


syntax error before "system"

y'a une erreur avant system? je ne vois pas...

Répondre à coleturner

7

kilian, le 18 mar 2008 à 11:15:19

y'a une erreur avant system? je ne vois pas...

Un point virgule manquant après la parenthèse fermante du while ;-)

Répondre à kilian

8

coleturner, le 18 mar 2008 à 11:24:44

Exacte, je ne savais même pas qu'il fallait un ; apres un while... comme quoi on en apprend tous les jours ^^
Merci beaucoup pour ton aide kilian :)

Répondre à coleturner

9

kilian, le 18 mar 2008 à 11:28:30

Bonne chance :-)

Répondre à kilian

10

coolboy00, le 15 sep 2009 à 04:34:42

Slt a tous je suis debutant dans la programmation mais mon bleme est ke apres avoir utiliser les condition if,else,et else lors de la coppilation code blocks me met tjrs erroe syntax error before "else"

voici le mini programme

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

int main(int argc, char *argv[])
{
int age = 20 ;

if ( age >= 18 )
{
printf ( "vous etes majeur\n");
}

else if( age > 10 );
{
printf (" bon t'es pas encore trop jeune\n");
}
else
{
printf ( " vous etes jeune ");
}

return 0;
}

Merci de m'aider à trouver la faille merci d'avance

Répondre à coolboy00

11

 gregouz62, le 15 sep 2009 à 10:10:08

Bonjour,
tu as mis ; après la condition de ton else if, c'est sans doute pour ça que ça ne marche pas !

Répondre à gregouz62
Collection CommentÇaMarche.net