Partage
  • Partager sur Facebook
  • Partager sur Twitter

Bug dans calculette

boucle infini

    21 décembre 2005 à 14:35:10

    J'ai un petit bug quand j'essaye de taper une lettre, ça me fait une boucle infini

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

    int main(int argc, char *argv[])
    {
      long choixMenu;
     while(1)
    {
      printf("=== Calculette ===\n\n");
      printf("1. Addition\n");
      printf("2. Soustraction\n");
      printf("3. Division\n");
      printf("4. Multiplication\n");
      printf("5. Equation du second degre\n");
      printf("0. quitter\n\n");
      printf("\nVotre choix ? ");
      scanf("%d", &choixMenu);
      printf("\n");


      switch (choixMenu)
      {     
        case 1:
        {
           double a = 0;
           double b = 0;
           printf("Addition :\n");
           printf("Tapez a:\n");
           scanf("%ld",&a);
           printf("tapez b:\n");
           scanf("%ld",&b);
           double c = a + b;
           printf("a + b= %ld\n",c);
           break;
        }
       
        case 2:
        {
           double a = 0;
           double b = 0;
           printf("Soustraction :\n");
           printf("Tapez a:\n");
           scanf("%ld",&a);
           printf("Tapez b:\n");
           scanf("%ld",&b);
           double c = a - b;
           printf("a - b= %ld\n",c);
           break;
        }
       
        case 3:
        {
           double a = 0;
           double b = 0;
           printf("Division :\n");
           printf("Tapez a:\n");
           scanf("%lf",&a);
           printf("Tapez b:\n");
           scanf("%lf",&b);
           double c = a / b;
           printf("a / b= %lf\n",c);
           break;
        }
        case 4:
           {
           double a = 0;
           double b = 0;
           printf("Multiplication :\n");
           printf("Tapez a:\n");
           scanf("%lf",&a);
           printf("Tapez b:\n");
           scanf("%lf",&b);
           double c = a * b;
           printf("a * b= %lf\n",c);
           break;
        }
            case 5:
        {
           double a = 0;double b = 0;double c = 0;double x1 =0; double x2=0;
           printf("Tapez a:\n");
           scanf("%lf",&a);
           printf("Tapez b:\n");
           scanf("%lf",&b);
           printf("Tapez c:\n");
           scanf("%lf",&c);
           double delt = (b*b)-(4*a*c);
           printf("Delta =%lf\n",delt);
           if (delt < 0)
              {
           printf("impossible car delta=%lf",delt);
              }
           if (delt==0)
              {
              printf("Une solution car delta =0");
              double x1=-b/(2*a);
              printf("X1=%lf",x1);
              }
           if (delt>0)
              {
           double x1=(-b-sqrt(delt))/(2*a);
           double x2=(-b+sqrt(delt))/(2*a);
           printf("2 solutions\n");     
           printf("X1=%lf",x1);
           printf("X2=%lf",x2);
              }         
           break;
        }
           case 0:
        {
          printf("\n\tQUITTER\n\n");
          printf("Vous avez decide de quitter, merci et au revoir.\n\n");
          system("PAUSE");return 0;
        }
        default:
        {
           printf("Vous n'avez pas rentre un nombre correct.");
           break;   
           return 0;
        }
    printf("\n\n");
      system("PAUSE");
    }
     
    }       
    }
    • Partager sur Facebook
    • Partager sur Twitter
      21 décembre 2005 à 15:19:36

      Le TP n°9 (corrigé) de cette page permet de résoudre ce genre de problèmes !
      • Partager sur Facebook
      • Partager sur Twitter
        21 décembre 2005 à 15:22:27

        Je ne vois pas comment résoudre mon problème
        • Partager sur Facebook
        • Partager sur Twitter

        Bug dans calculette

        × 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