Pb langage c d'un exerice qui rend la monnaie

Fermé
mido-mido-mido - 20 oct. 2007 à 22:04
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 18 déc. 2014 à 23:29
Bonjour,
j'ai un petit probleme en langage c et voila l'enoncé de l'exercice si quelqu'un peut m'aider svp
le probleme de la machine qui 'rend la monnais' .ecrivez un programme qui pour une somme donée en millimes, imprime le nombre (minimal) de pieces necessaires pour la composer
expl: 1949= 1*1000+ 1*500+ 4*400+ 2*20+ 1*5 + 2*2

j'ai pensée une idée mais j'aimerais que quelqu'un m'aide un peu svp
a et b etants des int l:e quotient et le reste de la division entiere de a par b s'obtiennent respectivement par les expressions a/b et a%b


merci d'avance
A voir également:

4 réponses

ilan27 Messages postés 394 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 15 juin 2009 36
20 oct. 2007 à 22:17
Bonsoir, je te propose ceci (mais je débute en C):
void main(){int somme;
printf(" Somme??");
scanf("%d", &somme);
if(somme>1000){
int nb1000=somme/1000;
somme=somme%1000;
}
ainsi de suite pour chaque billets et pièces
printf("nb de billets de 1000: %d, de 500: %d ...", nb1000, nb500...);
}

Tu veux des explications ou c'est bon?
0
mido-mido-mido
20 oct. 2007 à 22:41
tout d'abord merci mais j'ai un prob c'est que la premiere condition doit etre > ou = et j'ai pas trop compris la demarche
c'est quoi ce qui est en gras: printf("nb de billets de 1000: %d, de 500: %d ...", nb1000, nb500...); pkoi il n'est pas obliger de donner des 500

es ce que c'est commeca:
if (somme > 1000)
{ int nb1000=somme/1000;
somme=somme%1000;
}
if (somme >= 100)
{int nb100=somme/100;
somme=somme%100;
}
if (somme >= 10)

if (somme >= 1)
vous l'avez essayez vous ?
0
ilan27 Messages postés 394 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 15 juin 2009 36
20 oct. 2007 à 22:51
En effet, c'est >= . Et 500 c'est pour dire le nombre de billets de 500, et la valeur que tu as mise dans nb500 va s'afficher.
0
elhousseine Messages postés 4 Date d'inscription lundi 15 décembre 2014 Statut Membre Dernière intervention 20 décembre 2014
18 déc. 2014 à 22:50
#include <stdio.h>

int main(void)
{
int /* correspond à la constante du nombres de billets de 500? */
nb200,/* correspond à la constante du nombres de billets de 200? */
nb100,
nb50,
nb20,
nb10,
nb5,
nb2,/* correspond à la constante du nombres de pièces de 2? */
nb1,
argent;/* c'est la constante dans laquel on enregistrera la somme entré par l'utilisateur */

printf("Veuillez entrer la somme d'argent\n");
scanf("%d", &argent);

nb200 = argent/200;
argent = argent%200;
nb100 = argent/100;
argent = argent%100;
nb50 = argent/50;
argent = argent%50;
nb20 = argent/20;
argent = argent%20;
nb10 = argent/10;
argent = argent%10;
nb5= argent/5;
argent = argent%5;
nb2 = argent/2;
argent = argent%2;

nb1 = argent;

printf("%d * 200 + %d * 100 + %d * 50 + %d * 20 + %d * 10 + %d * 5 +%d * 2\n",nb200,nb100,nb50,nb20,nb10,nb5,nb2);

system ("pause");
return 0;
}
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 843
18 déc. 2014 à 23:29
7 ans après, pas mal...
Sinon, il manque stdlib.h pour system().
Autre remarque concernant l'algorithme, il aurait été préférable de passer par un tableau.
0