[C] problème avec les "else"

Es0pe Messages postés 94 Date d'inscription   Statut Membre Dernière intervention   -  
Es0pe Messages postés 94 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
voila je viens de faire un petit programme en C [console] mais lorsque je veux le compiler il me met qu'il y a un problème au niveau de "else", il ne reconnait aucun else. Si quelqu'un a une idée de comment je peux faire je suis preneur ^^

6 réponses

Es0pe Messages postés 94 Date d'inscription   Statut Membre Dernière intervention   2
 
Bon ok alors ... accrochez vous XD

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


int main ( int argc, char** argv )
{
    long nombreMystere = 0, nombreChoisi = 0, continuerPartie=1, lvl = 1;
    const long MIN = 1;
    const long MAX = 10;
    const long MAx = 100;
    const long max = 1000;

do 
{
    long coup=0;
    
    
    

    if (lvl == 1)
    
    
    
      
      srand(time(NULL));
      nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
       do
         { if (coup=0)
           printf("Vous pensez que c'est quel nombre? (entre 1 et 10)");
           scanf("%ld",&nombreChoisi);
                                    if (nombreChoisi>nombreMystere)
                                       printf("c'est plus !");
                                       coup = coup+1;
                                    else if (nombreChoisi < nombreMystere)
                                       printf("c'est moins!");
                                       coup=coup+1;
                                    else
                                       printf("C'est ça ^^");
                                       lvl=lvl+1
          else (coup>=1)
          printf("Vous pensez que c'est quel nombre?");
           scanf("%ld",&nombreChoisi);
   
                                    if (nombreChoisi>nombreMystere)
                                       printf("c'est plus !");
                                       coup = coup+1;
                                    else if (nombreChoisi < nombreMystere)
                                       printf("c'est moins!");
                                       coup=coup+1;
                                    else
                                       printf("C'est ça ^^");
                                       lvl=lvl+1
}           while (nombreChoisi!= nombreMystere);
      
            printf("1: Faire une nouvelle partie\n\n");
            printf("2 ou autre : Quitter");
            scanf("\n\n%ld",&continuerPartie);
       
         
    else if (lvl == 2)
          
          nombreMystere = (rand() % (MAx - MIN + 1)) + MIN;
     
          do
       {    ;
           if (coup =0)
              printf("Vous pensez que c'est quel nombre?(entre 1 et 100");
              scanf("%ld",&nombreChoisi);
                                    
                                    if (nombreChoisi>nombreMystere)
                                       printf("c'est plus !");
                                       coup = coup+1;
                                    else if (nombreChoisi < nombreMystere)
                                       printf("c'est moins!");
                                       coup=coup+1;
                                    else
                                       printf("C'est ça ^^");
                                       lvl=lvl+1
           else
                printf("Vous pensez que c'est quel nombre?");
              scanf("%ld",&nombreChoisi);
                       
                                    if (nombreChoisi>nombreMystere)
                                       printf("c'est plus !");
                                       coup = coup+1;
                                    else if (nombreChoisi < nombreMystere)
                                       printf("c'est moins!");
                                       coup=coup+1;
                                    else
                                       printf("C'est ça ^^");
                                       lvl=lvl+1
                
}         while (nombreChoisi!= nombreMystere);
       
          printf("1: Faire une nouvelle partie\n\n");
          printf("2 ou autre : Quitter");
          scanf("\n\n%ld",&continuerPartie);

      else if (lvl==3)
            nombreMystere = (rand() % (max - MIN + 1)) + MIN;
       
            do
   {          if (coup=0)
              printf("Vous pensez que c'est quel nombre? (entre 1 et 1000)");
              scanf("%ld",&nombreChoisi);
                                    
                                    if (nombreChoisi>nombreMystere)
                                       printf("c'est plus !");
                                       coup = coup+1;
                                    else if (nombreChoisi < nombreMystere)
                                       printf("c'est moins!");
                                       coup=coup+1;
                                    else
                                       printf("C'est ça ^^");
                                       lvl=lvl+1
              else (coup>=1)
              printf("Vous pensez que c'est quel nombre?");
              scanf("%ld",&nombreChoisi);
   
                                    if (nombreChoisi>nombreMystere)
                                       printf("c'est plus !");
                                       coup = coup+1;
                                    else if (nombreChoisi < nombreMystere)
                                       printf("c'est moins!");
                                       coup=coup+1;
                                    else
                                       printf("C'est ça ^^");
                                       lvl=lvl+1
}          while (nombreChoisi!= nombreMystere);
       
           printf("1: Faire une nouvelle partie\n\n");
           printf("2 ou autre : Quitter");
           scanf("\n\n%ld",&continuerPartie);

       else
       
           printf("je pense qu'on va s'arreter la ... pasque au dessus de 1000 c'est chaud\n\n");
           continuerPartie = 0;

}while (continuerPartie==1);
    system("pause");
    
}
1
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
Il y a plein d'erreurs avec tes if.
Lorsque tu utilises if (condition) n'oublie pas de mettre l'accolade derrière.
Par exemple :
if(a==0){
     faire ci;
     faire ça;
}

Si tu ne mets pas d'accolade, le code sera considéré comme :
if(a==0)
     faire ci;
faire ça; /*donc dans tous les cas, même si a différent de 0*/


La structure pour faire un if else est aussi à revoir.

Si tu veux approfondir : https://openclassrooms.com/fr/courses#ss_part_1
Cdlt
1
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

C'est toi qui doit s'accrocher ;-)

Tu n'as pas du tout utiliser d'accolades.

Pour l'info la syntaxe de if est :
if (condition)
  instruction;
En revanche tu ne peux pas écrire
if (condition)
  instruction1;
  instruction 2;
En ce cas il faut écrire.
En fait tu peux écrire comme ça, mais en ce cas pour if ce n'est que instruction 1 qui est traitée.
if (condition){
  instruction 1;
  instruction 2;
}

Pareil pour else if ou else

if (condition 1){
  instruction 1;
  instruction 2;
} else if (condition 2){
  instruction 3;
  instruction 4;
} else {
  instruction 5;
  instruction 6;
}
et n'oublie pas le point-virgule à la fin d'une instruction.
Je vois plusieurs fois dans ton code lvl=lvl+1 au lieu de
lvl=lvl+1;
Accroche-toi est mets les accolades.


1
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
ne pas oublier l'instruction switch plutôt que des if imbriqués
switch(nom_de_la_variable)
{
    case valeur_1:
            Instructions à exécuter dans le cas où la variable vaut valeur_1
        break;
    case valeur_2:
            Instructions à exécuter dans le cas où la variable vaut valeur_2
        break;
    default:
            Instructions à exécuter dans le cas où la variable vaut une valeur autre que valeur_1 et valeur_2
        break;
} 

https://www.squalenet.net/fr/ti/tutorial_c/9-controle-if-while-for-switch.php5
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Es0pe Messages postés 94 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci, pour le point virgule c'est juste que j'ai fait un C/C et que je l'ai pas copié ^^. et j'ai essayé
avec switch et case mais j'aime pas trop ... pour moi qui débute je trouve que la méthode if/else est plus ... "compréhensible" quitte a en mettre plusieurs d'affilés je pense que c'est mieux pour le début
après quand je serais plus a l'aise je passerai peut etre au switch

Blague du jour :
"-Voulez-vous switcher la question ?
-Oui Jean-Pierre c'est mon dernier mot !"

Pardonnez moi XD
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Salut,
T'as dû faire une erreur d'accolades ou une bêtise du genre.
Poste ton code en utilisant la balise code (à droite du bouton souligné). Et on essaiera de t'aider ;)
-1