[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. 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. 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. 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. 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. 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. 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