Probleme de boucle

Résolu/Fermé
geni - 19 mars 2008 à 15:53
 geni - 19 mars 2008 à 16:03
Bonjour,
voila je dois programme un genre de guichet... l'utilisateur entre son montant, et la machine lui dit bon jte dois tant de 100, de 50, de 20 et de 10... voila que je suis pris avec un probleme ... le voila:
lorsque je le test

Entrez le montant que vous desirez retirer: 500


Le retrait total est de : 500 $
Vous retirez donc:
1 billets de 100$

le nombre de billets de 100 devrait etre 5!!! je connais le probleme mais je ne sais pas comment le resoudre...


#include <stdio.h>
void main ()
{
// Variables

int cash, //montant que l'utilisateur veut retirer
reste,
nb10=0, //nombre de 10 a rendre
nb20=0, //nombre de 20 a rendre
nb50=0, //nombre de 50 a rendre
nb100=0; //nombre de 100 a rendre


// Entrée du montant par l'utilisateur
do
{
printf ("Entrez le montant que vous desirez retirer: ");
scanf ("%d", &cash);
}
while ( cash < 50 || cash >= 1000 || cash %10 !=0);

printf (" \n\nLe retrait total est de : %d $", cash);
printf (" \nVous retirez donc:\n");


// Nombre de 100

while (cash <= 100);
{
cash-100;
nb100++;
printf ("%d billets de 100$",nb100);
}

cest qu'il entre dans ma boucle while... mais il en sors tout de suite ...
AIDEZ MOI SVP

6 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
19 mars 2008 à 15:57
Salut,

peut être
cash -= 100; 
au lieu de
cash-100; --

lami20j
0
Non toujours pas :(
0
Bonjour

 while (cash <= 100); 
{ 
cash-100; 
nb100++; 
printf ("%d billets de 100$",nb100); 
} 


1 - while (cash <= 100)
tu es sûr du sens de ton test ? remaque que sans cette erreur, tu aurais une boucle infinie...

2 - pas de ; après le while ! sinon, ta bocle c'est seulement le ; pas ce qui est compris entres les { }
3 -
cash-=100;
car cash-100; seul ne modifie pas cash.

4- printf à l'extérieur de la boucle, sinon tu vas cérire 1 ouis 2 puis 3 etc à chaque passage
0
et pardon pour les nombreuses fautes de frappe, je fatigue, moi...
0
ericleclerc1985 Messages postés 644 Date d'inscription dimanche 27 janvier 2008 Statut Membre Dernière intervention 21 août 2008 289
19 mars 2008 à 16:01
// Nombre de 100

while (cash <= 100);
{
cash-100;
nb100++;
printf ("%d billets de 100$",nb100);
} 



1. Ton printf se retrouve à l'intérieur de ta boucle while, donc, affichera plusieurs fois ton message.
2. cash = cash-100;
3. while (cash >= 100) // sans ; et plus grand ou égal


Donc,

while (cash >= 100) {
 cash = cash - 100;
 nb100++;
} 
printf ("%d billets de 100$",nb100);




J'espère que ceci t'aidera.
Je ne fait que de la programmation PHP et de microcontroleur Microchip CCS, donc, il se peut que je sois dans l'erreur.
0
SebManfred Messages postés 484 Date d'inscription mardi 28 août 2007 Statut Membre Dernière intervention 20 mai 2011 128
19 mars 2008 à 16:01
salut,
au lieu de "cash-100;" mets "cash = cash-100;", sans quoi je ne vois pas comment tu peux tester ta valeur de sortie
sors aussi le "printf ("%d billets de 100$",nb100);" de ta boucle while, sinon tu vas l'afficher autant de fois que ce que tu auras de billets
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Il y a des sujets qui inspirent tout le monde ;-) ...
0
MERCI MERCI MERCI
0