Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problèmes avec ma calculette

elle ne calcule pas >_<

Sujet résolu
    13 décembre 2005 à 18:11:18

    Bonsoir,
    Voilà c'est mon premier post et j'ai un problème avec ma calculette, elle ne veut pas calculer... Mon but consiste à calculer toute une opération d'un coup au lieu de demander à l'utilisateur d'entrer le premier nombre puis le second en demandant au départ du programme quel type d'opération il veut faire.

    Voilà mon code:

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

    int main(int argc, char *argv[])
    {
      double nbr1 = 0, nbr2 = 0, resultat = 0;
      char operateur[1];
     
      printf("\\\\\\\\\\\\\\\\ calculette by casper //////////////\n\n\n");
     
     /* operation */
     
      printf ("rentrer votre operation de cette maniere <nbr1> <operateur> <nbr2> :           
      \n"
    );
      scanf("%lf, %c, %lf", &nbr1, &operateur, &nbr2);
     
      /* Si c'est une addition */
     
      if   ( operateur == "+" )
        {
             resultat = nbr1 + nbr2;
             printf ("resultat: %lf", resultat);   /* affiche le résultat */
             system ("PAUSE");
        }
     
      /* Si c'est une soustraction */ 
     
      else if  ( operateur == "-" )
        {
             resultat = nbr1 - nbr2;
             printf ("resultat: %lf", resultat);
             system ("PAUSE");
        }
     
      /* Si c'est une multiplication */ 
       
      else if  ( operateur == "*" )
        {
             resultat = nbr1 * nbr2;
             printf ("resultat: %lf", resultat);
             system ("PAUSE");
        }
     
      /* Si c'est une division */

      else if ( operateur == >"/")
        {
             resultat = nbr1 / nbr2;
           
          if  ( nbr2 = 0 )

            {
              printf ("dans une division le denominateur ne peut etre egal a 0\n");
              system ("PAUSE");
            }
           
          else
            {
           
                printf ("resultat: %lf", resultat);
                system ("PAUSE");
            } 
      }
       
      system("PAUSE");     
      return 0;
    }


    Bon merci de votre aide @+
    • Partager sur Facebook
    • Partager sur Twitter
      13 décembre 2005 à 18:37:17

      Salut,
      J'ai changer plusieur ligne de ton programme et je vai esseyer de les expliquez toutes sans en oublier :-° :

      1)Dans ton cas char ne contien de toutes façon que un siggni il n'est donc pas nésessaire de mètre le [1]

      char operateur[1];
      //Devien :
      char operateur;


      2)
      printf ("rentrer votre operation de cette maniere <nbr1> <operateur> <nbr2> :         
        \n"
      )
      //alor là je sais pas pourquoi tu as été a la ligne avant de metre \n mais sa fait une erreur a la compilation donc:
      printf ("rentrer votre operation de cette maniere <nbr1> <operateur> <nbr2> : \n")


      3)
      scanf("%lf, %c, %lf", &nbr1, &operateur, &nbr2);
      //il ne faut pas mêtre de virgules entre les "" car nu ne fait que donner le type de la variable et si tu ne met pas d'espace l'utilisateur ne devera pas en mèttre non plus :
      scanf("%lf%c%lf", &nbr1, &operateur, &nbr2);


      4)il faudrait aller a la ligne après l'afichage du résultat et tu n'est pas obliger de faire un systeme pause a chaque fait car tu en a un a la fin.
      Je vais te mettre juste pour le "+" tu fera bien les autre toi même:
      printf ("resultat: %lf", resultat);   /* affiche le résultat */
               system ("PAUSE");
      //deviens
       printf ("resultat: %lf\n", resultat);   /* affiche le résultat */


      5)Si tu fait une vérification d'un char sans le [1] a la fin il ne faut pas mêtre des double guillemets mais des simple (encore une fois pour chaque signe):
      if   ( operateur == "+" )
      //deviens :
      if   ( operateur == '+' )


      6)Ca c'est surement 2 fautes de frappes:

      else if ( operateur == '/')
      //et pas
      else if ( operateur == >"/")

      //et
      if  ( nbr2 == 0 )
      //et pas
      if  ( nbr2 = 0 )


      Je crois que c'est tout je vais afficher le code complet que j'ait fait et qui fonctionne (chez moi :-° )
      #include <stdio.h>
      #include <stdlib.h>
      #include <math.h>

      int main(int argc, char *argv[])
      {
        double nbr1 = 0, nbr2 = 0, resultat = 0;
        char operateur;
       
        printf("\\\\\\\\\\\\\\\\ calculette by casper //////////////\n\n\n");
       
       /* operation */
       
        printf ("rentrer votre operation de cette maniere <nbr1> <operateur> <nbr2> :\n");
        scanf("%lf%c%lf", &nbr1, &operateur, &nbr2);
       
        /* Si c'est une addition */
       
        if   ( operateur == '+' )
          {
               resultat = nbr1 + nbr2;
               printf ("resultat: %lf\n", resultat);   /* affiche le résultat */
               
          }
       
        /* Si c'est une soustraction */
       
        else if  ( operateur == '-' )
          {
               resultat = nbr1 - nbr2;
               printf ("resultat: %lf\n", resultat);
               
          }
       
        /* Si c'est une multiplication */
         
        else if  ( operateur == '*' )
          {
               resultat = nbr1 * nbr2;
               printf ("resultat: %lf\n", resultat);
             
          }
       
        /* Si c'est une division */

        else if ( operateur == '/')
          {
               resultat = nbr1 / nbr2;
             
            if  ( nbr2 == 0 )

              {
                printf ("dans une division le denominateur ne peut etre egal a 0\n");
               
              }
             
            else
              {
             
                  printf ("resultat: %lf\n", resultat);
                 
              }
        }
         
        system("PAUSE");     
        return 0;
      }


      Escuse moi pour l'ortho et j'esspère t'avoir aider

      @+
      • Partager sur Facebook
      • Partager sur Twitter
        13 décembre 2005 à 18:48:50

        Re,
        Merci beaucoup j'ai compris, je n'ai plus qu'à lui rajouter d'autres fonctions :p
        @++
        • Partager sur Facebook
        • Partager sur Twitter

        Problèmes avec ma 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