Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème de division...

le resultat est faux.

    19 décembre 2005 à 22:40:19

    bonjour a tout le monde!



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

    int main(int argc, char *argv[])
    {
        double ndiv1 = 0, ndiv2 = 0, resdiv;
            int choix = 0 , n1 = 0 , n2 = 0 , n3 = 0, n4 = 0,n5 = 0, res =0, retour = 1,nombre = 0, nombre1 = 0,air = 0;
        while( retour == 1)
        {
         
               system("CLS");
        printf("bonjour et bienvenue sur la calculette a flo!!!\n\n\n");
        printf("tapez : \n\n[1]pour une addition \n[2]pour une soustraction\n[3]pour une multiplication\n[4]pour une division\n[5]pour des aires\n[6]pour quitter\n");
        printf("\n\n\npuis tapez entrer\n\n\n");
        scanf("%d",&choix);
       
        if(choix == 1)
        {
                 printf("combien de chiffres a additionner? ( 5 max): ");
                 scanf("%d",&nombre1);
                       
        switch(nombre1)
        {
                       
         case 2 : printf("1er nombre : ");
                 scanf("%d",&n1);
                 printf("2eme nombre : ");
                 scanf("%d",&n2);
                 res = n1 + n2 ;
                 printf("le resultat : %d\n\n",res);
                 break;
         
           case 3 :printf("1er nombre : ");
                 scanf("%d",&n1);
                 printf("2eme nombre : ");
                 scanf("%d",&n2);
                 printf("3eme nombre : ");
                 scanf("%d",n3);
                 res = n1 + n2 + n3;
                 printf("le resultat : %d\n\n",res);
                 break;
               
           
          case 4 :printf("1er nombre : ");
                 scanf("%d",&n1);
                 printf("2eme nombre : ");
                 scanf("%d",&n2);
                 printf("3eme nombre : ");
                 scanf("%d",&n3);
                 printf("4eme nombre : ");
                 scanf("%d",&n4);
                 res = n1 + n2 + n3 +n4;
                 printf("le resultat : %d\n\n",res);
                 break;
                 
          case 5 :printf("1er nombre : ");
                 scanf("%d",&n1);
                 printf("2eme nombre : ");
                 scanf("%d",&n2);
                 printf("3eme nombre : ");
                 scanf("%d",&n3);
                 printf("4eme nombre : ");
                 scanf("%d",&n4);
                 printf("5eme nombre : ");
                 scanf("%d",&n5);
                 res = n1 + n2 + n3 +n4 + n5;
                 printf("le resultat : %d\n\n",res);
                 break;
                 
               
          default:
         printf("\n\n le nombre maximum c'est 5 et minimum c'est 2.");
                  break;
                  }
                  }
        if(choix == 2)
        {
             printf("1er nombre : ");
                 scanf("%d",&n1);
                 printf("2eme nombre : ");
                 scanf("%d",&n2);
                 res = n1 - n2 ;
                 printf("le resultat : %d\n\n",res);   
        }
       
       
        if (choix == 3)
       
        {
               printf("combien de nombre a multiplier? ( 5 max): ");
               scanf("%d",&nombre);   
                 
       
        switch(nombre)
        {
        case 2:
                           printf("1er nombre : ");
                 scanf("%d",&n1);
                 printf("2eme nombre : ");
                 scanf("%d",&n2);
                 res = n1 * n2 ;
                 printf("le resultat : %d\n\n",res);
                 break;
        case 3:
             printf("1er nombre : ");
                 scanf("%d",&n1);
                 printf("2eme nombre : ");
                 scanf("%d",&n2);
                 printf("3eme nombre : ");
                 scanf("%d",&n3);
                 res = n1 * n2 * n3;
                 printf("le resultat : %d\n\n",res);
                 break;
        case 4:
             printf("1er nombre : ");
                 scanf("%d",&n1);
                 printf("2eme nombre : ");
                 scanf("%d",&n2);
                 printf("3eme nombre : ");
                 scanf("%d",&n3);
                 printf("4eme nombre : ");
                 scanf("%d",&n4);
                 res = n1 * n2 * n3 * n4;
                 printf("le resultat : %d\n\n",res);
                 break;
         
         case 5 :printf("1er nombre : ");
                 scanf("%d",&n1);
                 printf("2eme nombre : ");
                 scanf("%d",&n2);
                 printf("3eme nombre : ");
                 scanf("%d",&n3);
                 printf("4eme nombre : ");
                 scanf("%d",&n4);
                 printf("5eme nombre : ");
                 scanf("%d",&n5);
                 res = n1 * n2 * n3 * n4 * n5;
                 printf("le resultat : %d\n\n",res);
                 break;
         
         default :
                 printf("le nombre maximum c'est 5 et minimum 2");
                 break;
                 }
                 }
        if (choix == 4)
       
        {
                    printf("1er nombre : ");
                 scanf("%f",&ndiv1);
                 printf("2eme nombre (attention ne mettez pas 0)!!! : ");
                 scanf("%f",&ndiv2);
          if ( ndiv2 ==  0)
          {
               printf(" je t'es dit de ne pas mettre 0 !!!\n\n\n");
               }
               else
               {
                  resdiv = ndiv1 / ndiv2 ;
                 printf("le resultat : %f \n\n",resdiv);
                 }
                 }
        if (choix ==5)
        {
                  system("CLS");
        printf("\n\ntapez : \n\n[1]pour l'aire d'un carre\n[2]pour l'aire d'un rectangle\n[3]pour l'aire d'un triangle quelquonque\n[4]pour l'aire d'un triangle special\n[0]pour revenir au menu principal\n\n\n");
        scanf("%d",&air);
       
        switch(air)
        {
                   case 0 : retour = 1;
                            break;
                           
                   case 1 : printf("donner un cote du carre : ");
                            scanf("%d",&n1);
                            res = n1 * n1;
                            printf("resultat : %d",res);
                            break;
                           
                   case 2 : printf("donner le 1er cote : ");
                            scanf("%d",&n1);
                            printf("donner le 2eme cote : ");
                            scanf("%d",&n2);
                            res = n1 * n2;
                            printf("l'aire = %d",res);
                            break;
                           
                   case 3 : printf("donner la longueur de la base : ");
                            scanf("%d",&n1);
                            printf("donner la hauteur du triangle : ");
                            scanf("%d",&n2);
                            res = n1 * n2 /2;
                            printf("l'aire = %d",res);
                            break;
                           
                   case 4 : printf("donnerle 1er cote : ");
                            scanf("%d",&n1);
                            printf("donner le 2eme cote : ");
                            scanf("%d",&n2);
                            res = n1 * n2 / 2 ;
                            printf("l'aire = %d",res);
                            break;
                           
                   default :
                           printf("il faut choisir un nombre entre 1 et 4 !!!");
                           break;
    }
    }           
        if(choix == 6)
        {
                 return 0;
         }
         else if(choix >= 7)
         {
              printf("erreur de saisie");
              }
             
    printf("\n\n\n voulez refaire un calcul? (1 pour oui / 0 pour non)  : ");
    scanf("%d",&retour);


         }
      return 0;
    }



    essayer de faire une division 5 par 2 il vous mettera 1.009766...
    on pourrait m'aider svp?
    • Partager sur Facebook
    • Partager sur Twitter
      19 décembre 2005 à 22:48:08

      Oui pour les divisions il faut que l'utilisateur entre un nombre avec virgule... genre 3.0/4.0. Sinon le résultat sera faux!!!
      :o^^o_O
      • Partager sur Facebook
      • Partager sur Twitter
        19 décembre 2005 à 22:53:10

        non non je viens de réussir atta je te passe le code :D

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

        int main(int argc, char *argv[])
        {
            double ndiv1 = 0, ndiv2 = 0, resdiv=0;//j'ai rajoute une valeur de 0 a resdiv
                int choix = 0 , n1 = 0 , n2 = 0 , n3 = 0, n4 = 0,n5 = 0, res =0, retour = 1,nombre = 0, nombre1 = 0,air = 0;
            while( retour == 1)
            {
             
                   system("CLS");
            printf("bonjour et bienvenue sur la calculette a flo!!!\n\n\n");
            printf("tapez : \n\n[1]pour une addition \n[2]pour une soustraction\n[3]pour une multiplication\n[4]pour une division\n[5]pour des aires\n[6]pour quitter\n");
            printf("\n\n\npuis tapez entrer\n\n\n");
            scanf("%d",&choix);
           
            if(choix == 1)
            {
                     printf("combien de chiffres a additionner? ( 5 max): ");
                     scanf("%d",&nombre1);
                           
            switch(nombre1)
            {
                           
             case 2 : printf("1er nombre : ");
                     scanf("%d",&n1);
                     printf("2eme nombre : ");
                     scanf("%d",&n2);
                     res = n1 + n2 ;
                     printf("le resultat : %d\n\n",res);
                     break;
             
               case 3 :printf("1er nombre : ");
                     scanf("%d",&n1);
                     printf("2eme nombre : ");
                     scanf("%d",&n2);
                     printf("3eme nombre : ");
                     scanf("%d",n3);
                     res = n1 + n2 + n3;
                     printf("le resultat : %d\n\n",res);
                     break;
                   
               
              case 4 :printf("1er nombre : ");
                     scanf("%d",&n1);
                     printf("2eme nombre : ");
                     scanf("%d",&n2);
                     printf("3eme nombre : ");
                     scanf("%d",&n3);
                     printf("4eme nombre : ");
                     scanf("%d",&n4);
                     res = n1 + n2 + n3 +n4;
                     printf("le resultat : %d\n\n",res);
                     break;
                     
              case 5 :printf("1er nombre : ");
                     scanf("%d",&n1);
                     printf("2eme nombre : ");
                     scanf("%d",&n2);
                     printf("3eme nombre : ");
                     scanf("%d",&n3);
                     printf("4eme nombre : ");
                     scanf("%d",&n4);
                     printf("5eme nombre : ");
                     scanf("%d",&n5);
                     res = n1 + n2 + n3 +n4 + n5;
                     printf("le resultat : %d\n\n",res);
                     break;
                     
                   
              default:
             printf("\n\n le nombre maximum c'est 5 et minimum c'est 2.");
                      break;
                      }
                      }
            if(choix == 2)
            {
                 printf("1er nombre : ");
                     scanf("%d",&n1);
                     printf("2eme nombre : ");
                     scanf("%d",&n2);
                     res = n1 - n2 ;
                     printf("le resultat : %d\n\n",res);   
            }
           
           
            if (choix == 3)
           
            {
                   printf("combien de nombre a multiplier? ( 5 max): ");
                   scanf("%d",&nombre);   
                     
           
            switch(nombre)
            {
            case 2:
                               printf("1er nombre : ");
                     scanf("%d",&n1);
                     printf("2eme nombre : ");
                     scanf("%d",&n2);
                     res = n1 * n2 ;
                     printf("le resultat : %d\n\n",res);
                     break;
            case 3:
                 printf("1er nombre : ");
                     scanf("%d",&n1);
                     printf("2eme nombre : ");
                     scanf("%d",&n2);
                     printf("3eme nombre : ");
                     scanf("%d",&n3);
                     res = n1 * n2 * n3;
                     printf("le resultat : %d\n\n",res);
                     break;
            case 4:
                 printf("1er nombre : ");
                     scanf("%d",&n1);
                     printf("2eme nombre : ");
                     scanf("%d",&n2);
                     printf("3eme nombre : ");
                     scanf("%d",&n3);
                     printf("4eme nombre : ");
                     scanf("%d",&n4);
                     res = n1 * n2 * n3 * n4;
                     printf("le resultat : %d\n\n",res);
                     break;
             
             case 5 :printf("1er nombre : ");
                     scanf("%d",&n1);
                     printf("2eme nombre : ");
                     scanf("%d",&n2);
                     printf("3eme nombre : ");
                     scanf("%d",&n3);
                     printf("4eme nombre : ");
                     scanf("%d",&n4);
                     printf("5eme nombre : ");
                     scanf("%d",&n5);
                     res = n1 * n2 * n3 * n4 * n5;
                     printf("le resultat : %d\n\n",res);
                     break;
             
             default :
                     printf("le nombre maximum c'est 5 et minimum 2");
                     break;
                     }
                     }
            if (choix == 4)
           
            {
                        printf("1er nombre : ");
                     scanf("%df",&ndiv1);
                     printf("2eme nombre (attention ne mettez pas 0)!!! : ");
                     scanf("%df",&ndiv2);
              if ( ndiv2 ==  0)
              {
                   printf(" je t'es dit de ne pas mettre 0 !!!\n\n\n");
                   }
                   else
                   {
                      resdiv = ndiv1 / ndiv2 ;
                     printf("le resultat est %f", resdiv);
                     }
                     }
            if (choix ==5)
            {
                      system("CLS");
            printf("\n\ntapez : \n\n[1]pour l'aire d'un carre\n[2]pour l'aire d'un rectangle\n[3]pour l'aire d'un triangle quelquonque\n[4]pour l'aire d'un triangle special\n[0]pour revenir au menu principal\n\n\n");
            scanf("%d",&air);
           
            switch(air)
            {
                       case 0 : retour = 1;
                                break;
                               
                       case 1 : printf("donner un cote du carre : ");
                                scanf("%d",&n1);
                                res = n1 * n1;
                                printf("resultat : %d",res);
                                break;
                               
                       case 2 : printf("donner le 1er cote : ");
                                scanf("%d",&n1);
                                printf("donner le 2eme cote : ");
                                scanf("%d",&n2);
                                res = n1 * n2;
                                printf("l'aire = %d",res);
                                break;
                               
                       case 3 : printf("donner la longueur de la base : ");
                                scanf("%d",&n1);
                                printf("donner la hauteur du triangle : ");
                                scanf("%d",&n2);
                                res = n1 * n2 /2;
                                printf("l'aire = %d",res);
                                break;
                               
                       case 4 : printf("donnerle 1er cote : ");
                                scanf("%d",&n1);
                                printf("donner le 2eme cote : ");
                                scanf("%d",&n2);
                                res = n1 * n2 / 2 ;
                                printf("l'aire = %d",res);
                                break;
                               
                       default :
                               printf("il faut choisir un nombre entre 1 et 4 !!!");
                               break;
        }
        }           
            if(choix == 6)
            {
                     return 0;
             }
             else if(choix >= 7)
             {
                  printf("erreur de saisie");
                  }
                 
        printf("\n\n\n voulez refaire un calcul? (1 pour oui / 0 pour non)  : ");
        scanf("%d",&retour);


             }
          return 0;
        }
        • Partager sur Facebook
        • Partager sur Twitter
          20 décembre 2005 à 11:15:12

          me'rci mais sa existe %df ???
          • Partager sur Facebook
          • Partager sur Twitter
            20 décembre 2005 à 11:20:57

            oui %df c'est pour une variable double
            %ld ou %d ne permet d'afficher que des nombre entiers ;)
            • Partager sur Facebook
            • Partager sur Twitter

            problème de division...

            × 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