[C] Décomposer une somme d'argent en...

Fermé
Cyber-Einstein - 15 janv. 2008 à 14:43
 fatima - 16 nov. 2017 à 21:00
Voila je deois ecrier un programme qui décompose une somme d'argent en un nom bre de billets et de pièces en utilisant 3 fonctions. Par exemple 142.55 se decompose en :
1*20
2*20
1*2
1*0.50
1*0.05

Voici le début du programme que j'ai tapé pouvez vous m'aider à le terminer
Merci d'avance :)


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

//-------------------------------------------------------------------------------------------
int quotient (float a , float b)
{
return (int)(a/b); //Troncature du resultat de a divisé par b
}
int reste (float a , float b)
{
return (a % b); //Fonction modulo qui rend le reste de la division de a par b
}
int nb (float montant , float valeurpb)
{
return quotient (montant,valeurpb);
}
//-------------------------------------------------------------------------------------------

main()
int montant,a,b;
static int valeurpb [16] {50000,20000,10000,5000,2000,1000,500,200,100,50,20,10,5,2,1};

{
printf ("Ce programme permet de décomposer une somme d'argent en billet et en pièce \n");
printf ("Veuillez entrez la somme d'argent : \n");
scanf ("%r",&argent);
A voir également:

1 réponse

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
15 janv. 2008 à 15:52
houlà, tu parle d'une aide... En plus du problème d'algorithme, il y a des problème de langage.
a%b ne fonctionne pas avec des float, il faut des int. Ensuite, il faut que tu choisisse un type et que tu t'y tienne !
moi, ce que je te conseil ,c'est de partir de la somme donnée, de soustraire le plus gros montant (billet) si le résultat et positif, tu garde le billet et tu recommence.si le résultat est négatif, tu restore le montant et tu essai avec le billet/piece de valeur inférieur, et ainsi de suite.
exemple avec 142.55 :
142.55-500<0 => billet suivant
142.55-200<0 => billet suivant
142.55-100>0 => on donne un billet de cent, on travail sur 42.55
42.55-100<0 => billet suivant
42.55-50<0 => illet suivant
42.55-20>0 => on donne un billet de 20, on travail maintenant avec 22.55
22.55-20>0 => on donne un billet de 20, on travail avec 2.55
2.55-20<0 => billet suivant
...
0.05-0.05==0 => on donne une piece de 5 centime. on a maintenant 0.00, on arret donc la boucle.

Bonne chance
1
Merci
0