Problème dans un TP ( le jeux plus ou moin )

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.
A voir également:

3 réponses

Jeefoo32Vb Messages postés 45 Statut Membre 14
 
ca cest un rapport d'eurreur de votre programme de programation?
0
Pwoned
 
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.
0
Pwoned
 
oups, j'oubliais : pour un test d'égalité, c'est if(variable==valeur).
Si tu ne met qu'un seul =, ça veut dire affectation : la variable prend la valeur donnée et le test est vrai tant que valeur n'est pas 0.
== veut dire test : renvoi 0 si les valeurs sont différentes, 1 si elles sont égales.
0
kakashi-sensei
 
merci pwoned ca s'est executé toutefois quand je tape 1 ça entre dans une boucle infinie qui affiche le message de default :s vous savez pourquoi?
0