24/03/2016, 09:29
|
| | Fecha de Ingreso: febrero-2011
Mensajes: 41
Antigüedad: 13 años, 10 meses Puntos: 1 | |
Respuesta: Validar entrada de datos Cita:
Iniciado por vizen 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 gracias por tu ayuda :D |