[C] problème avec les "else"

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 ^^

--
☻ ♪ ♫ I'm sorry, Mama. I never meant to hurt you. I never meant to make you cry, but tonight I'm cleanin' out my closet. ♫ ♪ ☻ 

6 réponses

  1. 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
    1. Contributeur
      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
      1. Modérateur
        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
        1. Contributeur
          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
          1. 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
            1. Contributeur
              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