/*----------------------------------------------------------*/ /* */ /* AUTHOR : Eric VIOLARD */ /* E-MAIL : violard@icps.u-strasbg.fr */ /* ORGANISM : Université Louis Pasteur (Strasbourg) */ /* CREATION : 08/11/02 */ /* */ /* ---------------------------------------------------------*/ /* Programme qui, étant donné une somme due en euros, indique comment la payer en espèces avec un minimum de billets et de pièces. (on suppose que l'on dispose d'un stock suffisant de billets et de pieces). Exemple : pour un total de 234.67 euros, il faut : 1 billet de 200 euros 1 billet de 20 euros 1 billet de 10 euros 2 pieces de 2 euros 1 piece de 50 cents 1 piece de 10 cents 1 piece de 5 cents 1 piece de 1 cents */ #include /* pour utiliser les fonctions printf et scanf */ main() { /* déclarations */ float somme; /* somme en euros */ int reste_a_payer; /* somme restante à payer en centimes d'euros */ int especes; /* nombre de billets ou de pièces */ /* --- lecture du nombre de notes à lire --- */ printf("Entrer la somme due en euros : "); scanf("%f",&somme); /* --- calcul de la somme restante à payer --- */ reste_a_payer = (int)(somme*100); /* --- calcul et affichage du décompte de billets et pièces --- */ especes = reste_a_payer/50000; if(especes==1) printf("1 billet de 500 euros\n"); else if(especes>0) printf("%d billets de 500 euros\n",especes); reste_a_payer=reste_a_payer%50000; especes = reste_a_payer/20000; if(especes==1) printf("1 billet de 200 euros\n"); else if(especes>0) printf("%d billets de 200 euros\n",especes); reste_a_payer=reste_a_payer%20000; especes = reste_a_payer/10000; if(especes==1) printf("1 billet de 100 euros\n"); else if(especes>0) printf("%d billets de 100 euros\n",especes); reste_a_payer=reste_a_payer%10000; especes = reste_a_payer/5000; if(especes==1) printf("1 billet de 50 euros\n"); else if(especes>0) printf("%d billets de 50 euros\n",especes); reste_a_payer=reste_a_payer%5000; especes = reste_a_payer/2000; if(especes==1) printf("1 billet de 20 euros\n"); else if(especes>0) printf("%d billets de 20 euros\n",especes); reste_a_payer=reste_a_payer%2000; especes = reste_a_payer/1000; if(especes==1) printf("1 billet de 10 euros\n"); else if(especes>0) printf("%d billets de 10 euros\n",especes); reste_a_payer=reste_a_payer%1000; especes = reste_a_payer/500; if(especes==1) printf("1 billet de 5 euros\n"); else if(especes>0) printf("%d billets de 5 euros\n",especes); reste_a_payer=reste_a_payer%500; especes = reste_a_payer/200; if(especes==1) printf("1 piece de 2 euros\n"); else if(especes>0) printf("%d pieces de 2 euros\n",especes); reste_a_payer=reste_a_payer%200; especes = reste_a_payer/100; if(especes==1) printf("1 piece de 1 euro\n"); else if(especes>0) printf("%d pieces de 1 euro\n",especes); reste_a_payer=reste_a_payer%100; especes = reste_a_payer/50; if(especes==1) printf("1 piece de 50 cents\n"); else if(especes>0) printf("%d pieces de 50 cents\n",especes); reste_a_payer=reste_a_payer%50; especes = reste_a_payer/20; if(especes==1) printf("1 piece de 20 cents\n"); else if(especes>0) printf("%d pieces de 20 cents\n",especes); reste_a_payer=reste_a_payer%20; especes = reste_a_payer/10; if(especes==1) printf("1 piece de 10 cents\n"); else if(especes>0) printf("%d pieces de 10 cents\n",especes); reste_a_payer=reste_a_payer%10; especes = reste_a_payer/5; if(especes==1) printf("1 piece de 5 cents\n"); else if(especes>0) printf("%d pieces de 5 cents\n",especes); reste_a_payer=reste_a_payer%5; especes = reste_a_payer/2; if(especes==1) printf("1 piece de 2 cents\n"); else if(especes>0) printf("%d pieces de 2 cents\n",especes); reste_a_payer=reste_a_payer%2; especes = reste_a_payer/1; if(especes==1) printf("1 piece de 1 cents\n"); else if(especes>0) printf("%d pieces de 1 cents\n",especes); reste_a_payer=reste_a_payer%1; /* Ouf ! il ne reste plus rien à payer */ }