Partage
  • Partager sur Facebook
  • Partager sur Twitter

[probleme calculatrice]

bug dans mon "switch"

Sujet résolu
    20 décembre 2006 à 17:11:28

    salut à tous, je suis en train de suivre les cours de m@téo, et j'essaye de faire la calculatrice qu'il demande de faire à la fin du chapitre sur les conditions.
    le problème, c'est que mon programme ne compile pas dans la deuxieme condition du switch la soustraction), il bloque sur " resultat = (nombreUn-nombreDeux); "
    voici mon code :
    #include <stdio.h>
    #include <stdlib.h>

    int main(int argc‚ char *argv[])
    {
        //variables
        long choix =0‚ nombreUn =0‚ nombreDeux =0‚ resultat =0;
        //menu
     printf ("=====CALCULATRICE===== \n\n");
     printf ("faites votre choix : \n");
     printf ("1.Addition \n");
     printf ("2.Soustraction \n");
     printf ("3.Multiplication \n");
     printf ("4.Division \n\n");
     
     scanf ("%ld"‚ &choix);//transmet le choix à la variable

     switch (choix)
     {
     case 1:
       printf ("Addition \n");
       printf ("tapez le premier nombre : \n");
       
       scanf ("%ld"‚ &nombreUn);
       printf ("tapez le second nombre \n");
       
       scanf ("%ld"‚ &nombreDeux);
       long resultat = (nombreUn+nombreDeux);
       printf ("%ld + %ld = %ld"‚ nombreUn‚ nombreDeux‚ resultat);
    break;
     case 2:
        printf ("Soustraction \n");
        printf ("tapez le premier nombre : \n");
       
        scanf ("%ld"‚ &nombreUn);
        printf ("tapez le second nombre \n");
       
        scanf ("%ld"‚ &nombreDeux);
        long resultat = (nombreUn – nombreDeux);
       printf ("%ld – %ld = %ld"‚ nombreUn‚ nombreDeux‚ resultat);
       
    break;
     case 3:
       printf ("Multiplication \n");
    break;
     case 4:
       printf ("Division \n");
    break;
     default:
       printf ("mauvais choix‚ vous ne calculerez rien du tout !");
    break;
     }
       //calcul
     
       
       //fin
       
     printf ("\n");     
     

      system("PAUSE");      // met le programme en pause
      return 0; //affiche "appuyez sur une touche pour continuer" FERME LE PROGRAMME
    }


    Auriez vous la gentillesse de me dire comment resoudre ce problème?
    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      20 décembre 2006 à 17:15:10

      tu redefini le type a chaque utilisation de la variable resultat! et c'est totalement faux!
      • Partager sur Facebook
      • Partager sur Twitter
        20 décembre 2006 à 17:16:04

        non rien... je suis fatigué ^^

        Comme dit remich, il ne faut définir qu'une fois chaque variable.

        Enlève donc tout les "long" devant les variables que tu as déjà déclaré au début du programme.
        • Partager sur Facebook
        • Partager sur Twitter
          20 décembre 2006 à 17:20:02

          Citation : remich

          tu redefini le type a chaque utilisation de la variable resultat! et c'est totalement faux!


          ok, mais comment faire? Ce qui me fait rager c'est que j'ai suivi ces cours il y a un an et que j'ai réussi cette calculatrice du premier coup! :colere2::colere2:
          pourriez vous m'aiclairer un peu plus s'il vous plait?
          • Partager sur Facebook
          • Partager sur Twitter
            20 décembre 2006 à 17:25:04

            Ya pas grand chose de plus à expliquer, alors voila quelques exemples

            Ce qu'il ne faut pas faire


            long nombreUn=10‚ nombreDeux=3‚ resultat;
            long resultat = (nombreUn – nombreDeux);


            Ce qu'il faut faire


            long nombreUn=10‚ nombreDeux=3‚ resultat;
            resultat = (nombreUn – nombreDeux);


            Bref, il ne faut pas redéfinir deux fois resultat en long.
            • Partager sur Facebook
            • Partager sur Twitter
              20 décembre 2006 à 17:27:23

              yep, merci beaucoup (mais que je suis bete!! :p )
              • Partager sur Facebook
              • Partager sur Twitter

              [probleme calculatrice]

              × 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