[C] problème avec les "else"

Es0pe Messages postés 104 Statut Membre -  
Es0pe Messages postés 104 Statut Membre -
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. Es0pe Messages postés 104 Statut Membre 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
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Es0pe Messages postés 104 Statut Membre 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
  7. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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