hola morbo, te envio una posible solucion, las abra mejores pero esta funciona
Código c:
Ver original#include <stdio.h>
#include <stdlib.h>
enum {no,si};
const int max_nbol = 150; // número maximo de asientos en la sala
const int precio = 45;
void menu_error(int nBoletos, int total);
int main()
{
int nBoletos, total, pago, cambio;
for(;;){
/*Datos de entrada*/
int repetir=si;
do{
printf("************ Venta de Boletos CineESAD ************\n\n" "Para salir del programa introduzca un \'0\'\n\n"
"Proporcione el numero de boletos que desea comprar:\t");
if(nBoletos>=0 && nBoletos<=max_nbol) repetir=no;
}while(repetir);
if(nBoletos==0) break;
/*Calcula el total de la venta y mostramos el total en pantalla*/
total = nBoletos * precio;
printf("\nEl monto a pagar es: %d\n\n\n\n",total
);
/*Lee el pago*/
printf("Indique el monto pagado: "); do
{
if (pago < total) menu_error(nBoletos, total);
} while(pago < total);
/*Calculo del cambio*/
cambio = pago - total;
printf("\n\n El monto de su cambio es %d\n",cambio
);
if ((cambio/200)>=1)
{
printf("\n\t%d billetes de $200", cambio
/200); cambio = cambio % 200;/*calculando el residuo*/
}
if ((cambio/100)>=1)
{
printf("\n\t%d billetes de $100", cambio
/100); cambio = cambio % 100;/*calculando el residuo*/
}
if ((cambio/50)>=1)
{
printf("\n\t%d billetes de $50", cambio
/50); cambio = cambio % 50;/*calculando el residuo*/
}
if ((cambio/20)>=1)
{
printf("\n\t%d billetes de $20", cambio
/20); cambio = cambio % 20;/*calculando el residuo*/
}
if ((cambio/10)>=1)
{
printf("\n\t%d monedas de $10", cambio
/10); cambio = cambio % 10;/*calculando el residuo*/
}
if ((cambio/5)>=1)
{
printf("\n\t%d monedas de $5", cambio
/5); cambio = cambio % 5;/*calculando el residuo*/
}
if ((cambio/2)>=1)
{
printf("\n\t%d monedas de $2", cambio
/2); cambio = cambio % 2;/*calculando el residuo*/
}
if ((cambio/1)>=1)
{
printf("\n\t%d monedas de $1", cambio
/1); cambio = cambio % 1;/*calculando el residuo*/
}
char c;
}
return 0;
}
/* si hay un error en el total pagado se visuliza este menu */
void menu_error(int nBoletos, int total){
printf("************ Venta de Boletos CineESAD ************\n\n" "Para salir del programa introduzca un \'0\'\n\n"
"Proporcione el numero de boletos que desea comprar:\t%i\n\n"
"El monto a pagar es: %d\n\n"
"El monto pagado debe de ser mayor o igual al total\a\a\n\n"
"Indique el monto pagado: ", nBoletos, total);
}
suerte