Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme avec else...if

    26 décembre 2005 à 21:40:38

    ben voila a partir de operation == 6 il me dit que c'est fux et je ne comprend aps pourquoi si vous pouvier me le dire svp voici mon code:

        #include <stdlib.h>
        #include <string.h>
        #include <stdio.h>
        #include <windows.h>
        #include <math.h>
        #include <time.h>
       
        int main(int argc, char *argv[])
        {
       
        int retour = 0, menuPrincipale = 1, menuConvertisseur = 3;
        double resultatDivision = 0, trou = 0, resultatAdition = 0,nombre1 = 0, nombre2 = 0, resultatMultiplication = 0, resultatSoustraction = 0, resultatConvertisseur = 0, nombre3 = 6.55957;
        long operation = 0, choixConvertisseur = 2, convertisseur = 0, choix = 0, MAX = 100, MIN = 0, nombreMystere = 0, nombreEntrer = 0, compteur = 0;
       
        srand(time(NULL));
        nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
       
        system ("CLS");
       
        while (menuPrincipale)
       
        {
       
        printf ("    BIENVENUE DANS LA\n\n ========CALCULOMAGE========\n\n une calculette creer par mageblanc\n\n");
        printf(" salut tout le monde bienvenu sur ma calculette\n");
        printf (" Appuyer sur:\n\n 1.Adition\n 2.Multiplication\n 3.Soustraction\n 4.Division\n 5.Menu Convertion\n 6.JEUX\n");
        scanf ("%ld", &operation);
       
       
           
        while (operation == 1)
        {
        printf ("========BINVENUE DANS ADDITION========\n\n");
        printf ("alors vous voulez taper une adition\n");
        printf ("taper le nombre 1:\n");
        scanf ("%lf", &nombre1);
        printf ("Taper le nombre 2:\n");
        scanf ("%lf", &nombre2);
       
        resultatAdition = nombre1 + nombre2;
       
        printf ("%lf + %lf = %lf\n\n", nombre1, nombre2, resultatAdition);
        printf ("taper 1 pour refaire une addition taper 2 pour plus d'option\n");
        scanf ("%ld", &retour);
       
        switch (retour)
        {
              case 1:
              operation = 1;
              break;
              case 2:
              operation = 0;
              break;
              default:
              printf("c'est pas se que je vous demande\n bon on reprend");
              }
        }
       
       
        while (operation == 2)
         {
          printf ("========BIENVENUE DANS MULTIPLICATION========\n\n");
          printf ("vous voulez taper une multiplication très bien alors aler si taper");
          printf ("Taper nombre 1:\n");
         scanf ("%lf", &nombre1);
         printf ("taper nombre 2:\n");
         scanf ("%lf", &nombre2);
                     
         resultatMultiplication = nombre1 * nombre2;
                     
         printf ("%lf * %lf = %lf\n\n", nombre1, nombre2, resultatMultiplication);
         
         printf ("taper 1 pour refaire une adition taper 2 pour plus d'option");
        scanf ("%ld", &retour);
          switch (retour)
        {
              case 1:
              operation = 2;
              break;
              case 2:
              operation = 0;
              break;
              }
        }
         
       
       
         
        while (operation == 3)
         {
         printf ("========BIENVENUE DANS SOUSTRACTION========\n\n");
         printf ("vous voulez faire une soustraction ? \n alors allez si\n");
         printf (" Taper nombre 1:\n");
         scanf ("%lf", &nombre1);
         printf ("Taper nombre2 :\n");
         scanf ("%lf", &nombre2);
         
         resultatSoustraction = nombre1 - nombre2;
         
         printf ("%lf - %lf = %lf\n\n", nombre1, nombre2, resultatSoustraction);
         
         printf ("taper 1 pour refaire une adition taper 2 pour plus d'option\n");
        scanf ("%ld", &retour);
          switch (retour)
        {
              case 1:
              operation = 3;
              break;
              case 2:
              operation = 0;
              break;
              }
         }
       
         
         
         while (operation == 4)
         {
        printf ("========BIENVENUE DANS DIVISION========\n\n");     
        printf ("vous voulez faire une division\n");
        printf ("Taper votre nombre 1 ici :\n");
         scanf ("%lf", &nombre1);
        printf ("Taper le nombre 2 ici:\n");
         scanf ("%lf", &nombre2);
               
         resultatDivision = nombre1 / nombre2;
         
        printf ("%lf / %lf = %lf\n\n", nombre1, nombre2, resultatDivision);
         
        printf ("taper 1 pour refaire une operation taper 2 pour plus d'option\n");
        scanf ("%ld", &retour);
          switch (retour)
        {
              case 1:
              operation = 4;
              break;
              case 2:
              operation = 0;
              break;
              }
        }
     
        while (operation == 5)/* si je tape 5 alors j'atterie ici*/
        {
        printf (" =======BIENVENUE DANS LE CONVERTISSEUR========\n\n");
        printf (" 1. convertisseur Euro/Franc\n 2. convertisseur Franc/Euro\n");
        scanf ("%ld", &choixConvertisseur); /*si je tape 1 alors j'atterie en dessous*/
        operation++; /* pour que operation val 6 et soit faut.*/
       
        while (choixConvertisseur == 1)
         {
         printf (" =======BIENVENUE DANS LE CONVERTISSUER EURO/FRANC=======\n\n");
         printf (" Taper le nombre a convertir en Franc:\n");
         scanf ("%lf", &nombre1);
         
         resultatConvertisseur = nombre1 * nombre3;
         
        printf ("%lf Euro est egal a %lf Franc\n\n", nombre1, resultatConvertisseur);
       
        printf (" taper 1 pour refaire une convertion\n taper 2 pour plus d'option:\n Taper 3 pour retourner au menu convertion");
        scanf ("%ld", &retour);
        switch (retour)
        {
        case 1:
        choixConvertisseur = 1;
        break;
        case 2:
        choixConvertisseur = 0;
        break;
        case 3:
             choixConvertisseur = 0;
             operation = 5;
        break;
         }
        }
       
        while (choixConvertisseur == 2)
        {
        printf ("========BIENVENUE DANS CONVERTISSEUR FRANC/EURO========\n\n");
        printf (" Taper le nombre a convertir en Euro:\n");
        scanf ("%lf", &nombre1);
       
        resultatConvertisseur = nombre1 / nombre3;
       
        printf ("%lf Franc est egal a %lf Euro\n\n", nombre1, resultatConvertisseur);
       
        printf (" taper 1 pour refaire une convertion\n taper 2 pour plus d'option:\n Taper 3 pour menu convertion");
        scanf ("%ld", &retour);
        switch (retour)
        {
           case 1:
                choixConvertisseur = 2;
           break;
           case 2:
                choixConvertisseur = 0;
           break;
           case 3:
                choixConvertisseur = 0;
                operation = 5;
           break;
           default:
                   printf ("je ne comprend pas dsl");
           break;
           }
        }
    }                    // <----------------------- C'est ici qu'il faut fermer le "while(operation == 5)"
       
       while (operation == 6)
       {
       printf ("========JEUX========\n\n");
       printf ("Qu'elle est le nombre ? :\n");
       scanf ("%ld\n", &nombreEntrer);
       compteur++
       
       if (nombreEntrer > nombreMystere)
       {
       printf ("C'est plus !!\n\n");
       }
       else if (nombreEntrer < nombreMystere)
       {
       printf ("C'est moin !!\n\n");
       }
       else
       {
       printf (" Bravo vous avez trouver le nombre Mystere en %ld coup.", compteur);
       }
    }(nombreMystere != nombreEntrer);
       
       
        printf (" pour revenir au menu principale taper 1 sinon taper 0\n");
        scanf ("%ld", &menuPrincipale);
        switch (menuPrincipale)
        {
           case 1:
                menuPrincipale = 1;
           break;
           case 2:
                menuPrincipale = 0;
           break;
        }
        }
       
        system ("PAUSE");
        return 0;
        }
    • Partager sur Facebook
    • Partager sur Twitter
      26 décembre 2005 à 21:52:11

      Il me dit quelque chose ce code source... Il n'y avait pas déjà une erreur... de boucle ?

          #include <stdlib.h>
          #include <string.h>
          #include <stdio.h>
          #include <windows.h>
          #include <math.h>
          #include <time.h>
         
          int main(int argc, char *argv[])
          {
         
          int retour = 0, menuPrincipale = 1, menuConvertisseur = 3;
          double resultatDivision = 0, trou = 0, resultatAdition = 0,nombre1 = 0, nombre2 = 0, resultatMultiplication = 0, resultatSoustraction = 0, resultatConvertisseur = 0, nombre3 = 6.55957;
          long operation = 0, choixConvertisseur = 2, convertisseur = 0, choix = 0, MAX = 100, MIN = 0, nombreMystere = 0, nombreEntrer = 0, compteur = 0;
         
          srand(time(NULL));
          nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
         
          system ("CLS");
         
          while (menuPrincipale)
         
          {
         
          printf ("    BIENVENUE DANS LA\n\n ========CALCULOMAGE========\n\n une calculette creer par mageblanc\n\n");
          printf(" salut tout le monde bienvenu sur ma calculette\n");
          printf (" Appuyer sur:\n\n 1.Adition\n 2.Multiplication\n 3.Soustraction\n 4.Division\n 5.Menu Convertion\n 6.JEUX\n");
          scanf ("%ld", &operation);
         
         
             
          while (operation == 1)
          {
          printf ("========BINVENUE DANS ADDITION========\n\n");
          printf ("alors vous voulez taper une adition\n");
          printf ("taper le nombre 1:\n");
          scanf ("%lf", &nombre1);
          printf ("Taper le nombre 2:\n");
          scanf ("%lf", &nombre2);
         
          resultatAdition = nombre1 + nombre2;
         
          printf ("%lf + %lf = %lf\n\n", nombre1, nombre2, resultatAdition);
          printf ("taper 1 pour refaire une addition taper 2 pour plus d'option\n");
          scanf ("%ld", &retour);
         
          switch (retour)
          {
                case 1:
                operation = 1;
                break;
                case 2:
                operation = 0;
                break;
                default:
                printf("c'est pas se que je vous demande\n bon on reprend");
                }
          }
         
         
          while (operation == 2)
           {
            printf ("========BIENVENUE DANS MULTIPLICATION========\n\n");
            printf ("vous voulez taper une multiplication très bien alors aler si taper");
            printf ("Taper nombre 1:\n");
           scanf ("%lf", &nombre1);
           printf ("taper nombre 2:\n");
           scanf ("%lf", &nombre2);
                       
           resultatMultiplication = nombre1 * nombre2;
                       
           printf ("%lf * %lf = %lf\n\n", nombre1, nombre2, resultatMultiplication);
           
           printf ("taper 1 pour refaire une adition taper 2 pour plus d'option");
          scanf ("%ld", &retour);
            switch (retour)
          {
                case 1:
                operation = 2;
                break;
                case 2:
                operation = 0;
                break;
                }
          }
           
         
         
           
          while (operation == 3)
           {
           printf ("========BIENVENUE DANS SOUSTRACTION========\n\n");
           printf ("vous voulez faire une soustraction ? \n alors allez si\n");
           printf (" Taper nombre 1:\n");
           scanf ("%lf", &nombre1);
           printf ("Taper nombre2 :\n");
           scanf ("%lf", &nombre2);
           
           resultatSoustraction = nombre1 - nombre2;
           
           printf ("%lf - %lf = %lf\n\n", nombre1, nombre2, resultatSoustraction);
           
           printf ("taper 1 pour refaire une adition taper 2 pour plus d'option\n");
          scanf ("%ld", &retour);
            switch (retour)
          {
                case 1:
                operation = 3;
                break;
                case 2:
                operation = 0;
                break;
                }
           }
         
           
           
           while (operation == 4)
           {
          printf ("========BIENVENUE DANS DIVISION========\n\n");     
          printf ("vous voulez faire une division\n");
          printf ("Taper votre nombre 1 ici :\n");
           scanf ("%lf", &nombre1);
          printf ("Taper le nombre 2 ici:\n");
           scanf ("%lf", &nombre2);
                 
           resultatDivision = nombre1 / nombre2;
           
          printf ("%lf / %lf = %lf\n\n", nombre1, nombre2, resultatDivision);
           
          printf ("taper 1 pour refaire une operation taper 2 pour plus d'option\n");
          scanf ("%ld", &retour);
            switch (retour)
          {
                case 1:
                operation = 4;
                break;
                case 2:
                operation = 0;
                break;
                }
          }
       
          while (operation == 5)/* si je tape 5 alors j'atterie ici*/
          {
          printf (" =======BIENVENUE DANS LE CONVERTISSEUR========\n\n");
          printf (" 1. convertisseur Euro/Franc\n 2. convertisseur Franc/Euro\n");
          scanf ("%ld", &choixConvertisseur); /*si je tape 1 alors j'atterie en dessous*/
          operation++; /* pour que operation val 6 et soit faut.*/
         
          while (choixConvertisseur == 1)
           {
           printf (" =======BIENVENUE DANS LE CONVERTISSUER EURO/FRANC=======\n\n");
           printf (" Taper le nombre a convertir en Franc:\n");
           scanf ("%lf", &nombre1);
           
           resultatConvertisseur = nombre1 * nombre3;
           
          printf ("%lf Euro est egal a %lf Franc\n\n", nombre1, resultatConvertisseur);
         
          printf (" taper 1 pour refaire une convertion\n taper 2 pour plus d'option:\n Taper 3 pour retourner au menu convertion");
          scanf ("%ld", &retour);
          switch (retour)
          {
          case 1:
          choixConvertisseur = 1;
          break;
          case 2:
          choixConvertisseur = 0;
          break;
          case 3:
               choixConvertisseur = 0;
               operation = 5;
          break;
           }
          }
         
          while (choixConvertisseur == 2)
          {
          printf ("========BIENVENUE DANS CONVERTISSEUR FRANC/EURO========\n\n");
          printf (" Taper le nombre a convertir en Euro:\n");
          scanf ("%lf", &nombre1);
         
          resultatConvertisseur = nombre1 / nombre3;
         
          printf ("%lf Franc est egal a %lf Euro\n\n", nombre1, resultatConvertisseur);
         
          printf (" taper 1 pour refaire une convertion\n taper 2 pour plus d'option:\n Taper 3 pour menu convertion");
          scanf ("%ld", &retour);
          switch (retour)
          {
             case 1:
                  choixConvertisseur = 2;
             break;
             case 2:
                  choixConvertisseur = 0;
             break;
             case 3:
                  choixConvertisseur = 0;
                  operation = 5;
             break;
             default:
                     printf ("je ne comprend pas dsl");
             break;
             }
          }
      }                    // <----------------------- C'est ici qu'il faut fermer le "while(operation == 5)"
         
         while (operation == 6)
         {
         printf ("========JEUX========\n\n");
         printf ("Qu'elle est le nombre ? :\n");
         scanf ("%ld\n", &nombreEntrer);
         compteur++;  /* Qui c'est qui a oublié son point-virgule */
         
         if (nombreEntrer > nombreMystere)
         {
         printf ("C'est plus !!\n\n");
         }
         else if (nombreEntrer < nombreMystere)
         {
         printf ("C'est moin !!\n\n");
         }
         else
         {
         printf (" Bravo vous avez trouver le nombre Mystere en %ld coup.", compteur);
         }
      }(nombreMystere != nombreEntrer);
         
         
          printf (" pour revenir au menu principale taper 1 sinon taper 0\n");
          scanf ("%ld", &menuPrincipale);
          switch (menuPrincipale)
          {
             case 1:
                  menuPrincipale = 1;
             break;
             case 2:
                  menuPrincipale = 0;
             break;
          }
          }
         
          system ("PAUSE");
          return 0;
          }


      Il faut mettre les points-virgules après les incrémentations :
      scanf ("%ld\n", &nombreEntrer);
      compteur++;  /* Qui c'est qui a oublié son point-virgule */

      if (nombreEntrer > nombreMystere)
      {


      Rappel : AeTuOq28 ne corrige que les erreurs de compilations ou les erreurs trés évidentes, pour les autres erreurs faudra trouver un autre pigeon.
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        26 décembre 2005 à 22:01:29

        C'est légérement le bordel ce code :-° enfin bon :

        Déja la valeur de operation varie pas dans ton while ça va faire une jolie boucle infinie, ensuite à la fin de ton while t'as une erreur de syntaxe on sait pas ce que c'est le truc entre parenthèses (peut être que t'as mal mis la condition mais à mon avis tu voulais plutôt faire if(operation == 6) puis dans ce if un while avec comme condition le (nombreMystere != nombreEntrer), et enfin comme c'est mal indenté on comprend aps trop, t'auras peut être des boucles infinies ou sautées.
        • Partager sur Facebook
        • Partager sur Twitter

        probleme avec else...if

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown