Probleme Codage C

Fermé
Archimède le Fantastique - 8 janv. 2008 à 16:53
vlmath Messages postés 794 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 - 9 janv. 2008 à 15:24
Bonjour, j'ai un petit probleme en langage c et voila l'enoncé de l'exercice si quelqu'un peut m'aider svp

Ecrire un programme qui décompose une somme d'argent en un nombre de billets et de pièces. Par exemple 142,55 euros se décompose en :
1 * 100
2 * 20
1 * 2
1 * 0.50
1 * 0.05
La somme de départ est un réel, on impose:
1) D'écrire deux fonctions qui fournissent respectivement le quotient et le reste d'une division entière dont le dividende est un réel.
2) Une fonction qui reçoit en paramètre le montant d'un billet ou d'une pièce et le montant à décomposer et qui retourne le nombre d'éléments.





Merci d'avance pour vos réponse car moi je suis vraiment bloqué , je ne comprend pas bien comment faire.

1 réponse

vlmath Messages postés 794 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
9 janv. 2008 à 15:24
Salut,

Pour tes trois fonction :

1.
int quotient( float a, float b ){
return (int)( a / b ); // troncature du résultat de a divisé par b (enlève les décimales)
}

int reste( float a, float b ){
return ( a%b ); // fonction modulo qui rend le reste de la division de a par b
}


2.
int nb( float montant, float valeur_billet ){
return quotient( montant,valeur_billet );
}


Ensuite, pour la méthode main, il te suffit de boucler sur le montant, que tu réduit à chaque passage par le nombre de billet qui sont déjà attribués. Pour ton exemple, la première boucle, le total vaut 143,55. Tu peux y mettre une fois 100 francs (je suis Suisse ... :D). Tu affecte donc (143.55 -1*100) dans la variable montant. Lors de la deuxième boucle, il ne te reste plus que 43.55. Tu peux y mettre deux fois 20 francs, tu affecte donc (43.55 -2*20) dans montant, ... et ainsi de suite, jusqu'à obtenir un montant restant de 0 francs.

@Bientôt

PS : je n'ai pas testé les codes, dis moi si ça ne fonctionne pas ou si t'as une erreur.
0