Problème dans un TP ( le jeux plus ou moin )
kakashi-sensei
-
kakashi-sensei -
kakashi-sensei -
salut,
j'apprends a programmer en C , je suis débutant et je suit des cours , en arrivant a un TP ( le jeux plus ou moin , plustot connu ...) j'ai voulu améliorer le programme mais je reçoit une erreur a la compilation, je voudrait savoir c'est quoi cette erreur svp
=======================================================
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv[])
{
const int MIN = 1;
int nombreEntre =0, nombreMystere=0, compteur =0,continuerPartie, MAX = 100, choixMenu=0, difficulte=0;
printf("\n\n==== Mar7aban bikom fi lo3bat syada mn ras l7m9 ===\n");
printf("****Menu Principal****\n");
printf("1.niveau de difficultee\n");
printf("2.About !\n");
scanf("%ld",&choixMenu);
if(choixMenu =1)//si l'utilisateur choisi 1 il reçoit la demande de difficulté
printf(" choisissez votre niveau de difficulte :\n");
printf("1. Faclie , entre 0 et 100 ");
printf("2. Moyen , entre 0 et 1000 ");
printf("3. difficile , entre 0 et 10000 ");
while (difficulte !=1 && difficulte !=2 && difficulte !=3) // boucle pour redemander le choix si on tombe sur un malin
{
switch (difficulte)// changement de MAX qui est lié a difficulte
{
case 1:
MAX =100;
break;
case 2:
MAX =1000;
break;
case 3:
MAX =10000;
break;
default:
printf(" sir tfella 3la mok dir 1 oula 2 oula 3\n");
}
}
do //boucle du recommencement de la partie
{
srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
compteur=0;
do// boucle des choix de la partie
{
printf("dir nemra dyalk :");
scanf("%ld",&nombreEntre);
if ( nombreEntre > nombreMystere)
printf(" n9as azabi fin ghadi baghi tla3 lsma?\n");
else if ( nombreEntre < nombreMystere)
printf(" zid zid d zab nta din mok ta namra makatapehach?\n");
else
printf(" l3ez lik hanta l9itiha f %d d mou7awalat ^^\n ", compteur);
compteur++;
}while (nombreEntre != nombreMystere);
printf("tbri t3awd ola t9awd? ktab 1 ila briti t3awd o ktab 0 ila briti t9awd :");
scanf("%ld",&continuerPartie);
}while(continuerPartie);
else if (choixMenu =2)// 2eme choix du menu : about
printf(" had la3ba tsawbat f 2009 copyright by haytam 3o9o9 tawzi3 wa tab3 ma7foda li mcha dar chi copie lah i3ti lmmo lghara9 , netmenna tkon l3ba 3jbatkom sinn lhla ij3alha bach t3jb mkom\n");
else
printf(" sir 3i9 3la mmok\n ");
system("PAUSE");
return 0;
}
=======================================================
voila c'est le code , je l'es fait a ma façon je reçoit cette erreur ( 58 syntax error before "else" )
la else if (choixMenu=2)
je ne sais pas ou est l'erreur , je voudrait aussi connaitre votre avis sur mon raisonnement , si il aurait été mieux autrement , et si il marchera bien après une compilation correcte et merci d'avance.
j'apprends a programmer en C , je suis débutant et je suit des cours , en arrivant a un TP ( le jeux plus ou moin , plustot connu ...) j'ai voulu améliorer le programme mais je reçoit une erreur a la compilation, je voudrait savoir c'est quoi cette erreur svp
=======================================================
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv[])
{
const int MIN = 1;
int nombreEntre =0, nombreMystere=0, compteur =0,continuerPartie, MAX = 100, choixMenu=0, difficulte=0;
printf("\n\n==== Mar7aban bikom fi lo3bat syada mn ras l7m9 ===\n");
printf("****Menu Principal****\n");
printf("1.niveau de difficultee\n");
printf("2.About !\n");
scanf("%ld",&choixMenu);
if(choixMenu =1)//si l'utilisateur choisi 1 il reçoit la demande de difficulté
printf(" choisissez votre niveau de difficulte :\n");
printf("1. Faclie , entre 0 et 100 ");
printf("2. Moyen , entre 0 et 1000 ");
printf("3. difficile , entre 0 et 10000 ");
while (difficulte !=1 && difficulte !=2 && difficulte !=3) // boucle pour redemander le choix si on tombe sur un malin
{
switch (difficulte)// changement de MAX qui est lié a difficulte
{
case 1:
MAX =100;
break;
case 2:
MAX =1000;
break;
case 3:
MAX =10000;
break;
default:
printf(" sir tfella 3la mok dir 1 oula 2 oula 3\n");
}
}
do //boucle du recommencement de la partie
{
srand(time(NULL));
nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
compteur=0;
do// boucle des choix de la partie
{
printf("dir nemra dyalk :");
scanf("%ld",&nombreEntre);
if ( nombreEntre > nombreMystere)
printf(" n9as azabi fin ghadi baghi tla3 lsma?\n");
else if ( nombreEntre < nombreMystere)
printf(" zid zid d zab nta din mok ta namra makatapehach?\n");
else
printf(" l3ez lik hanta l9itiha f %d d mou7awalat ^^\n ", compteur);
compteur++;
}while (nombreEntre != nombreMystere);
printf("tbri t3awd ola t9awd? ktab 1 ila briti t3awd o ktab 0 ila briti t9awd :");
scanf("%ld",&continuerPartie);
}while(continuerPartie);
else if (choixMenu =2)// 2eme choix du menu : about
printf(" had la3ba tsawbat f 2009 copyright by haytam 3o9o9 tawzi3 wa tab3 ma7foda li mcha dar chi copie lah i3ti lmmo lghara9 , netmenna tkon l3ba 3jbatkom sinn lhla ij3alha bach t3jb mkom\n");
else
printf(" sir 3i9 3la mmok\n ");
system("PAUSE");
return 0;
}
=======================================================
voila c'est le code , je l'es fait a ma façon je reçoit cette erreur ( 58 syntax error before "else" )
la else if (choixMenu=2)
je ne sais pas ou est l'erreur , je voudrait aussi connaitre votre avis sur mon raisonnement , si il aurait été mieux autrement , et si il marchera bien après une compilation correcte et merci d'avance.
A voir également:
- Problème dans un TP ( le jeux plus ou moin )
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick jeux - Télécharger - Jeux vidéo
- Jeux java football - Télécharger - Jeux vidéo
- Jeux zuma - Télécharger - Jeux vidéo
- Jeux google caché - Guide
3 réponses
Hello,
Remplace if(choixMenu =1)
par if(choixMenu =1){
et remplace else if (choixMenu =2)
par }else if (choixMenu =2)
Modifications apportées : ajout de {} pour encadrer la partie "jeu".
Pourquoi : le if n'affecte que la l'instruction qui suit, donc si on place plusieurs instructions, il faut les regrouper dans un bloc {}.
Ici, le if(choixMenu =1) n'affecte que le printf qui suit, le reste n'est plus lié au if. Après, le compilateur rencontre un else, mais l'instruction au dessus n'est pas conditionnelle, donc il ne comprend pas et il refuse de compiler.
Remplace if(choixMenu =1)
par if(choixMenu =1){
et remplace else if (choixMenu =2)
par }else if (choixMenu =2)
Modifications apportées : ajout de {} pour encadrer la partie "jeu".
Pourquoi : le if n'affecte que la l'instruction qui suit, donc si on place plusieurs instructions, il faut les regrouper dans un bloc {}.
Ici, le if(choixMenu =1) n'affecte que le printf qui suit, le reste n'est plus lié au if. Après, le compilateur rencontre un else, mais l'instruction au dessus n'est pas conditionnelle, donc il ne comprend pas et il refuse de compiler.