Programa en c que determina las monedas que dar como cambio según el dinero percibido
Espero me puedan ayudar con el siguiente programa, el cual despliega la cantidad de monedas que se deben dar como cambio, en la que se pide monto a pagar y dinero recibido.
Las monedas son de 25 centavos 10 centavos 5 centavos y 1 centavo
Tengo el programa el problema es cuando lo evalua para>
Monto a pagar: 4.63
Dinero recibido: 10
El resultado me roba 1 centavo, si cambio la condición del ultimo ciclo a while(x>0)
El problema resulta al evaluar
Monto a pagar: 5
Dinero recibido: 10
Roba 1 centavo
Cualquier ayuda la agradezco, no encuentro porque el problema.
Código: C
/*Programa que calcula el cambio desplegando las monedas de 25, 10, 5 y 1 centavo
*/
#include <stdio.h>
#include <conio.h>
#define ENTER 13 /*13 es la tecla Enter*/
void main(void);
void pausa(void);
void captura(void);
void monedas(float);
void main(){
clrscr();
captura();
pausa();
}
void pausa(){
printf("\nPresione Enter para continuar\n");
while(getch()!=ENTER);
}
void captura(){
float monto,pago,cambio=0;
printf("Programa que calcula el cambio con monedas");
printf("\nInserte el total a pagar >");
scanf("%f",&monto);
printf("Inserte el dinero recibido >");
scanf("%f",&pago);
cambio=pago-monto;
printf("Su cambio es %.2f",cambio);
monedas(cambio);
}
void monedas(float x){
int c25=0,c10=0,c5=0,c1=0;
while(x>0.25){
x-=0.25;
c25++;
}
printf("\n\nRegresar %d monedas de 25 centavos",c25);
while(x>0.1){
x-=0.1;
c10++;
}
printf("\nRegresar %d monedas de 10 centavos",c10);
while(x>0.05){
x-=0.05;
c5++;
}
printf("\nRegresar %d monedas de 10 centavos",c5);
while(x>=0.01){
c1++;
x-=0.01;
printf("\n%f",x);
}
printf("\nRegresar %d monedas de 10 centavos",c1);
}
Las monedas son de 25 centavos 10 centavos 5 centavos y 1 centavo
Tengo el programa el problema es cuando lo evalua para>
Monto a pagar: 4.63
Dinero recibido: 10
El resultado me roba 1 centavo, si cambio la condición del ultimo ciclo a while(x>0)
El problema resulta al evaluar
Monto a pagar: 5
Dinero recibido: 10
Roba 1 centavo
Cualquier ayuda la agradezco, no encuentro porque el problema.
Código: C
/*Programa que calcula el cambio desplegando las monedas de 25, 10, 5 y 1 centavo
*/
#include <stdio.h>
#include <conio.h>
#define ENTER 13 /*13 es la tecla Enter*/
void main(void);
void pausa(void);
void captura(void);
void monedas(float);
void main(){
clrscr();
captura();
pausa();
}
void pausa(){
printf("\nPresione Enter para continuar\n");
while(getch()!=ENTER);
}
void captura(){
float monto,pago,cambio=0;
printf("Programa que calcula el cambio con monedas");
printf("\nInserte el total a pagar >");
scanf("%f",&monto);
printf("Inserte el dinero recibido >");
scanf("%f",&pago);
cambio=pago-monto;
printf("Su cambio es %.2f",cambio);
monedas(cambio);
}
void monedas(float x){
int c25=0,c10=0,c5=0,c1=0;
while(x>0.25){
x-=0.25;
c25++;
}
printf("\n\nRegresar %d monedas de 25 centavos",c25);
while(x>0.1){
x-=0.1;
c10++;
}
printf("\nRegresar %d monedas de 10 centavos",c10);
while(x>0.05){
x-=0.05;
c5++;
}
printf("\nRegresar %d monedas de 10 centavos",c5);
while(x>=0.01){
c1++;
x-=0.01;
printf("\n%f",x);
}
printf("\nRegresar %d monedas de 10 centavos",c1);
}
1 respuesta
Respuesta de Acade Mia Cartagena
1