Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Probleme de verification d'un nombre [ Archives / Au secours ] (pkmnlio)

lundi 19 décembre 2005 à 17:15:26 | Probleme de verification d'un nombre

pkmnlio

bonjour,

je dois faire un programme qui calcule le nombre de billet et de piece necessaire pour faire une somme, je l'avait fini et je croyai kil fonctionnais mais en le testant une derniere fois, j'ai vus qu'il ne prenait pas en compte les nombres tel 0.01
J'aimerai savoir si il y a une solution ?
Je dois rendre mon programme demain a 14h00

Voici le code de mon programme :
#include <stdio.h>
#include <conio.h>

main ()
{
      float s=0.00;  //Introduction De La Variable s Pour La Somme A Calculer
      int b500=0, b200=0, b100=0, b50=0, b20=0, b5=0, p2=0, p1=0, p05=0, p02=0, p01=0, p005=0, p002=0, p001=0;  //Introduction Des Variables De Chaque Type De Billet Et Pièce
     
      printf("Calculateur du nombre de billets et de pieces necessaire\n\n");
     
      printf("Introduisez une somme d'argent au format xx.xx : ");
      scanf("%f",&s);
     
      while(s>0)
      {
                if (s-500>=0)
                {
                 b500++;
                 s=s-500;
                }
                 else
                 {
                  if (s-200>=0)
                  {
                   b200++;
                   s=s-200;
                  }
                   else
                   {
                    if (s-100>=0)
                    {
                     b100++;
                     s=s-100;
                    }
                     else
                     {
                      if (s-50>=0)
                      {
                       b50++;
                       s=s-50;
                      }
                       else
                       {
                        if (s-20>=0)
                        {
                         b20++;
                         s=s-20;
                        }
                         else
                         {                                                                 
                          if (s-5>=0)
                          {
                           b5++;
                           s=s-5;
                          }
                           else
                           {
                            if (s-2>=0)
                            {
                             p2++;
                             s=s-2;
                            }
                             else 
                             {
                              if (s-1>=0)
                              {
                               p1++;
                               s=s-1;
                              }
                               else
                               {
                                if (s-0.5>=0)
                                {
                                 p05++;
                                 s=s-0.5;
                                }
                                 else
                                 {
                                  if (s-0.2>=0)
                                  {
                                   p02++;
                                   s=s-0.2;
                                  }
                                   else
                                   {
                                    if (s-0.1>=0)
                                    {
                                     p01++;
                                     s=s-0.1;
                                    }
                                     else
                                     {
                                      if (s-0.05>=0)
                                      {
                                       p005++;
                                       s=s-0.05;
                                      }
                                       else
                                       {
                                        if (s-0.02>=0)
                                        {
                                         p002++;
                                         s=s-0.02;
                                        }
                                         else
                                         {
                                          if (s-0.01>=0)
                                          {
                                           p001++;
                                           s=s-0.01;
                                          }
                                           else
                                           {
                                             s=0;
                                           }
                                         }
                                       }
                                     }
                                   }
                                 }
                               }
                             }
                           }                                                                      
                         }
                       }
                     }
                   }
                 }                       
                                                  
                                                                           
      }
             
printf("Pour cette somme, il vous faut : \n%d billet de 500 \n%d billet de 200 \n%d billet de 100 \n%d billet de 50 \n%d billet de 20 \n%d billet de 5 \n%d piece de 2 \n%d piece de 1 \n%d piece de 50 cents \n%d piece de 20 cents \n%d piece de 10 cents \n%d piece de 5 cents \n%d piece de 2 cents \n%d piece de 1 cents",b500,b200,b100,b50,b20,b5,p2,p1,p05,p02,p01,p005,p002,p001);                                 
      getch();
}
     
     
     
     
     


lundi 19 décembre 2005 à 17:27:46 | Re : Probleme de verification d'un nombre

morphorpse


Qu'est ce que tu entends par "il ne prend pas en compte les nombres tels que 0.01 " ??
Morphorpse

lundi 19 décembre 2005 à 17:29:52 | Re : Probleme de verification d'un nombre

pkmnlio

et bien normalement si je tape comme somme 0.01
il devrait me dire qu'il me faut 1 piece de 1 cents mais il ne le fait pas
pareil si je tape 0.03, il me dis qu'il me faut 1 piece de 2 cent mais 0 piece de 1 cent

j'ai beau chercher je ne trouve pas pourquoi

lundi 19 décembre 2005 à 17:31:57 | Re : Probleme de verification d'un nombre

morphorpse

est ce que tu as essayé, quand tu testes de ne pas regarder si c'est superieur à 0 mais supérieur à 0.01 ?

M.orphorpse

lundi 19 décembre 2005 à 17:35:51 | Re : Probleme de verification d'un nombre

pkmnlio

oui mais cela ne change rien, ce qui est bizarre par contre c'est que par exemple si je tape 2.48 il me dis qu'il faut 1 piece de 2, 2 piece de 0.20, 1 piece de 0.05, 1 de 0.02 et 1 de 0.01

je ne comprend rien a cela, on dirai qu'il le prend 1 fois de temp en temp, j'ai essayer en vidant la memoire clavier mais rien

lundi 19 décembre 2005 à 17:37:44 | Re : Probleme de verification d'un nombre

morphorpse

En gros ça ne marche pas quand tu passes comme valeur, une valeur inférieure à 1 ?

Morphorpse

lundi 19 décembre 2005 à 17:39:36 | Re : Probleme de verification d'un nombre

pkmnlio

ben sa marche quand je met 0.5 ou 0.05, on dirai que cela ne marche pas quand la valeur necesite une piece de 1 cent


lundi 19 décembre 2005 à 18:19:36 | Re : Probleme de verification d'un nombre

morphorpse

Je t'ai deja demandé mais essaies de modififer toutes les valeurs 0 par 0,01, bien toutes meme le while

Morphorpse

lundi 19 décembre 2005 à 18:56:37 | Re : Probleme de verification d'un nombre

ymca2003

Quelque questions plus bas dans le forum il y a une réponse au sujet des float :
ce n'est qu'une approximation des nombres décimaux et du coup ca pose des pb pour les soustractions et comparaisons l'approximation est de pire en pire à chaque fois)

Solutions :
- utiliser des double (%lf) : améliore mais ne résout pas forcément le pb.
- raisonner sur un prix directement en centimes => tu bosses uniquement avec des entiers (nécessite de modifier un peu la fct de demande du prix).

Sinon utilise les if ... else if ... else pour la lisibilité
if (s-500>=0)
{
  b500++;
  s=s-500;
}
else if (s-200>=0)
{
  b200++;
  s=s-200;
}else if
....


lundi 19 décembre 2005 à 19:55:21 | Re : Probleme de verification d'un nombre

pkmnlio

j'ai essayer mais cela ne fonctionne tjrs pas


1 2

Cette discussion est classé dans : programme, nombre, somme, piece, billet


Répondre à ce message

Sujets en rapport avec ce message

Somme d'entiers [ par PiraTmaT ] Bonjour,Je dispose d'une suite d'un certain nombre d'entiers aléatoires inférieurs ou égaux à 100.Je dois déterminer s'il est possible de regrouper un Programme avec Builder C++ [ par Kyzand ] j'ai un programme a faire mais je suis bloquéje le lis''Un nombre Armstrong est défini comme étant un nombre de n chiffres dont la somme des puissance Prog C - Envoie de mail auto avec piece jointe - Projet a 98% terminé.... [ par JimyRyan ] BonjourJ'ai écrit un programme en C (mode Texte pour le moment) qui ce charge d'envoier un mail automatiquement a une liste de personnes.Le mail ainsi (X == E T S) ??? [ par cricri_b34 ] j'ai créer un petit programme qui permet de pratiquer ses math...donc mon programme doit vérifier si le nombre entré par l'utilisateur, ets égal la so Une Variable étant un opérateur (Borland c++ Builder) [ par cricri_b34 ] j'ai créer un petit programme avec Borland c++ Builder qui permet de pratiquer ses math...donc mon programme doit vérifier si le nombre entré par l'ut calculer la somme des chiffres d'un nombre donné - NTL et nombres ZZ [ par scelw ] Je dois faire un exercice.Sachant que c'est pour travailler avec des très grands nombres (de plusieurs millions de chiffres), il faut utiliser la clas compteur de lettre [ par cobra176 ] Bonjour je sais qui exister sur ce site un programme qui compte le nombre de lettre de symbole en C mais voila 2 heures que je le recherche . quelqu' nombres aléatoires en c++ [ par johanb ] bonjour a tous, voici mon problême.Dans un programme, je dois générer deux fois un nombre aléatoire entre 0 et n (appelé max dans le programme). Voici code remunéré [ par caro_perf ] Bonjour,     Ne savant pas programmer en C++, nous devons realiser un programme dans ce langage. Nous cherchons donc quelqu'un pour nous aider dans no projet prog gde gestion notes en C++ [ par tiresj ] j'aurai besoin de votre aide pour faire un progaramme de gestion de notes en C++ dont voici le sujet détaillé. Cependant je vous demanderai de bien vo


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.