Ayuda con un switch

Iniciado por ZeroMiku, 10 Febrero 2016, 15:26 PM

0 Miembros y 1 Visitante están viendo este tema.

ZeroMiku

Buen dia, soy nuevo y necesito ayuda tengo este programa y no se como ponerlo en switch, ya lo intente y me salio error no se que estoy haciendo mal, voy a poner el programa sin el switch, lo que busco es dividir los procesos captura y moneda en 2 case pero no se como, si alguie puede hacerlo o darme alguna idea le estare agradecido.
el ejercicio:
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main(void);
void moneda(void);
void captura(void);
void monedas(int);

int main(){
captura();
moneda();

}

void captura(){
float monto,pago;
float cambio;
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=(float)(pago*100)-(float)(monto*100);
printf("Su cambio es %f",cambio);
monedas(cambio);
}
void monedas(int x){
int c50=0,c25=0,c10=0,c5=0,c1=0;
while(x>=50){
x-=50;
c50++;
}
printf("\n\nRegresar %d monedas de 50 centavos",c50);
while(x>=25){
x-=25;
c25++;
}
printf("\nRegresar %d monedas de 25 centavos",c25);
while(x>=10){
x-=10;
c10++;
}
printf("\nRegresar %d monedas de 10 centavos",c10);
while(x>=5){
x-=5;
c5++;
}
printf("\nRegresar %d monedas de 5 centavos",c5);
while(x>=1){
c1++;
x-=1;
}
printf("\nRegresar %d monedas de 1 centavos",c1);

}




void moneda(){
int salir,saliryesno;
salir=0;
while(salir==0){

printf("\n\tCANTIDAD DE DINERO Y TRANSFORMACION A OTRA MONEDA\n");
int cambiarmoneda;
float total_bill1,total_bill5,total_bill10,total_bill20,total_bill50,total_bill100,total_cent1,total_cent5,total_cent10,total_cent25,total_cent50,total_bill,total_cent,total_dinero,yen,peso_mexicano,euro;
printf("\nCantidad de billetes a ingresar: ");
scanf("%f",&total_bill1);
while(total_bill1<0){
printf("\nCantidad de billetes ingresdos: ");
scanf("%f",&total_bill1);
}

total_bill=(total_bill1*(1));
printf("Cantidad de monedas de un centavo: ");
scanf("%f",&total_cent1);
while(total_cent1<0){
printf("Cantidad de monedas de un centavo: ");
scanf("%f",&total_cent1);
}
printf("Cantidad de monedas de cinco centavos: ");
scanf("%f",&total_cent5);
while(total_cent5<0){
printf("Cantidad de monedas de cinco centavos: ");
scanf("%f",&total_cent5);
}
printf("Cantidad de monedas de diez centavos: ");
scanf("%f",&total_cent10);
while(total_cent10<0){
printf("Cantidad de monedas de diez centavos: ");
scanf("%f",&total_cent10);
}
printf("Cantidad de monedas de veinticinco: ");
scanf("%f",&total_cent25);
while(total_cent25<0){
printf("Cantidad de monedas de veinticinco centavos: ");
scanf("%f",&total_cent25);
}
total_cent=(total_cent1*(0.01)+total_cent5*(0.05)+total_cent10*(0.10)+total_cent25*(0.25));
printf("\nLA CANTIDAD DE DINERO QUE HAY EN BILLETES ES: $%.2f\n",total_bill);
printf("LA CANTIDAD DE DINERO QUE HAY EN MONEDAS ES: $%.2f\n",total_cent);
total_dinero=(total_bill+total_cent);
printf("LA CANTIDAD TOTAL DE DINERO QUE HAY ES: $%.2f\n\n",total_dinero);
printf("\t\tMONEDA\t\tCODIGO\n");
printf("\t\tYen Japones\t\t 1\n");
printf("\t\tPeso Mexicano\t\t 2\n");
printf("\t\tEuro\t\t\t 3\n\n");
printf("Introduzca el codigo de la moneda a la que desea convertir los $%.2f: ",total_dinero);
scanf("%d",&cambiarmoneda);
while(cambiarmoneda<0 || cambiarmoneda>3){
printf("Introduzca el codigo de la moneda a la que desea convertir los $%.2f: ",total_dinero);
scanf("%d",&cambiarmoneda);
}
yen=total_dinero* 114.97;
peso_mexicano=total_dinero*18.41;
euro=total_dinero*0.89;
switch(cambiarmoneda){
case 1:
printf("\n$%.2f EQUIVALE A %.2f YENES\n\n",total_dinero,yen);
break;
case 2:
printf("\n$%.2f EQUIVALE A %.2f PESOS MEXICANOS\n\n",total_dinero,peso_mexicano);
break;
case 3:
printf("\n$%.2f EQUIVALE A %.2f EUROS\n\n",total_dinero,euro);
}
printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: ");
scanf("%d",&saliryesno);
switch(saliryesno){
case 1:
salir=1;
}
}
}

abaadoon

#1
ejemplo
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#define uno 10
#define personas 99
#define nombres 50
int i, opc, cont;
float  suma;
struct empleado{
 int dt;
 float pd, cs;
 char x[personas][nombres]; /*99 para almacenar el numero de personas y 50 para los nombres*/
};
struct empleado datos[uno];
void menu();
void dato();
void resultado();
void pagototal();
void error();
void menu(){
system("reset");
printf("----Menu------\n");
printf("1- ingresar datos\n");
printf("2- resultado\n");
printf("3- resultado de todos los empleados \n");
printf("4- salir\n");
printf("ingrese la opcion: \n");
scanf("%d",&opc);
switch(opc){
case 1: dato();
break;
case 2: resultado();
break;
case 3: pagototal();
break;
case 4: system("exit");
break;
default: error();
break;
}
}

void dato(){
 system("clear");
 printf("cuantas personas hay (max 99): ");
 scanf("%d",&cont);
 for(i=0;i<cont;i++){
   printf("nombre la persona [%d]: \n",i+1);
   setbuf(stdin,NULL);
   fgets(datos[i].x[i],nombres,stdin);
   printf("dias trabajados de la persona %d: \n",i+1);
   scanf("%d",&datos[i].dt);
   printf("pago por dia de la persona %d: \n",i+1);
   scanf("%f",&datos[i].pd);
 }
 system("read -p 'presione enter para continuar' var ");
 menu();
}

void resultado(){
system("reset");
for(i=0;i<cont; i++){
datos[i].cs=datos[i].dt*datos[i].pd;
    printf("persona %d nombre: %s y salario %f \n", i+1, datos[i].x[i], datos[i].cs);
  }
  system("read -p 'presione enter para continuar' var ");
  menu();
}
void pagototal(){
system("reset");

for(i=0;i<cont; i++){
datos[i].cs=datos[i].dt*datos[i].pd;
suma=suma+datos[i].cs;
}
printf("el salario total es: %f\n",suma);
  system("read -p 'presione enter para continuar' var ");
  menu();
}
void error(){
system("reset");
printf("error opcion no valida\n");
system("read -p 'presione enter para continuar' var ");
menu();
}

int main(){
menu();
}

BlackM4ster

#2
geshi please
- Pásate por mi web -
https://codeisc.com

ZeroMiku

abaadoon, muchisimas gracias me sirvo completamente, estaba preocupado porque era mi trabajo de examen y solo me faltaba eso, otra vez: muchas gracias. :D ;-)

abaadoon

de nada un gusto en ayudar

Eleкtro

#5
¿Ustedes no saben que en todos los foros de programación hay que respetar sus reglas de formato de código?.

Usen las etiquetas GeShi.








Eternal Idol

Gente traten de usar el bendito GeSHi (seleccionan el codigo, clickean en el combobox que dice GeSHi y seleccionan el lenguaje en cuestion) de ahora en adelante por favor, hacerlo es gratis, no les vamos a cobrar.
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón

abaadoon