Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ZeroMiku en 10 Febrero 2016, 15:26 pm



Título: Ayuda con un switch
Publicado por: ZeroMiku en 10 Febrero 2016, 15:26 pm
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
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. int main(void);
  5. void moneda(void);
  6. void captura(void);
  7. void monedas(int);
  8.  
  9. int main(){
  10. captura();
  11. moneda();
  12.  
  13. }
  14.  
  15. void captura(){
  16. float monto,pago;
  17. float cambio;
  18. printf("Programa que calcula el cambio con monedas");
  19. printf("\nInserte el total a pagar >");
  20. scanf("%f",&monto);
  21. printf("Inserte el dinero recibido >");
  22. scanf("%f",&pago);
  23. cambio=(float)(pago*100)-(float)(monto*100);
  24. printf("Su cambio es %f",cambio);
  25. monedas(cambio);
  26. }
  27. void monedas(int x){
  28. int c50=0,c25=0,c10=0,c5=0,c1=0;
  29. while(x>=50){
  30. x-=50;
  31. c50++;
  32. }
  33. printf("\n\nRegresar %d monedas de 50 centavos",c50);
  34. while(x>=25){
  35. x-=25;
  36. c25++;
  37. }
  38. printf("\nRegresar %d monedas de 25 centavos",c25);
  39. while(x>=10){
  40. x-=10;
  41. c10++;
  42. }
  43. printf("\nRegresar %d monedas de 10 centavos",c10);
  44. while(x>=5){
  45. x-=5;
  46. c5++;
  47. }
  48. printf("\nRegresar %d monedas de 5 centavos",c5);
  49. while(x>=1){
  50. c1++;
  51. x-=1;
  52. }
  53. printf("\nRegresar %d monedas de 1 centavos",c1);
  54.  
  55. }
  56.  
  57.  
  58.  
  59.  
  60. void moneda(){
  61. int salir,saliryesno;
  62. salir=0;
  63. while(salir==0){
  64.  
  65. printf("\n\tCANTIDAD DE DINERO Y TRANSFORMACION A OTRA MONEDA\n");
  66. int cambiarmoneda;
  67. 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;
  68. printf("\nCantidad de billetes a ingresar: ");
  69. scanf("%f",&total_bill1);
  70. while(total_bill1<0){
  71. printf("\nCantidad de billetes ingresdos: ");
  72. scanf("%f",&total_bill1);
  73. }
  74.  
  75. total_bill=(total_bill1*(1));
  76. printf("Cantidad de monedas de un centavo: ");
  77. scanf("%f",&total_cent1);
  78. while(total_cent1<0){
  79. printf("Cantidad de monedas de un centavo: ");
  80. scanf("%f",&total_cent1);
  81. }
  82. printf("Cantidad de monedas de cinco centavos: ");
  83. scanf("%f",&total_cent5);
  84. while(total_cent5<0){
  85. printf("Cantidad de monedas de cinco centavos: ");
  86. scanf("%f",&total_cent5);
  87. }
  88. printf("Cantidad de monedas de diez centavos: ");
  89. scanf("%f",&total_cent10);
  90. while(total_cent10<0){
  91. printf("Cantidad de monedas de diez centavos: ");
  92. scanf("%f",&total_cent10);
  93. }
  94. printf("Cantidad de monedas de veinticinco: ");
  95. scanf("%f",&total_cent25);
  96. while(total_cent25<0){
  97. printf("Cantidad de monedas de veinticinco centavos: ");
  98. scanf("%f",&total_cent25);
  99. }
  100. total_cent=(total_cent1*(0.01)+total_cent5*(0.05)+total_cent10*(0.10)+total_cent25*(0.25));
  101. printf("\nLA CANTIDAD DE DINERO QUE HAY EN BILLETES ES: $%.2f\n",total_bill);
  102. printf("LA CANTIDAD DE DINERO QUE HAY EN MONEDAS ES: $%.2f\n",total_cent);
  103. total_dinero=(total_bill+total_cent);
  104. printf("LA CANTIDAD TOTAL DE DINERO QUE HAY ES: $%.2f\n\n",total_dinero);
  105. printf("\t\tMONEDA\t\tCODIGO\n");
  106. printf("\t\tYen Japones\t\t 1\n");
  107. printf("\t\tPeso Mexicano\t\t 2\n");
  108. printf("\t\tEuro\t\t\t 3\n\n");
  109. printf("Introduzca el codigo de la moneda a la que desea convertir los $%.2f: ",total_dinero);
  110. scanf("%d",&cambiarmoneda);
  111. while(cambiarmoneda<0 || cambiarmoneda>3){
  112. printf("Introduzca el codigo de la moneda a la que desea convertir los $%.2f: ",total_dinero);
  113. scanf("%d",&cambiarmoneda);
  114. }
  115. yen=total_dinero* 114.97;
  116. peso_mexicano=total_dinero*18.41;
  117. euro=total_dinero*0.89;
  118. switch(cambiarmoneda){
  119. case 1:
  120. printf("\n$%.2f EQUIVALE A %.2f YENES\n\n",total_dinero,yen);
  121. break;
  122. case 2:
  123. printf("\n$%.2f EQUIVALE A %.2f PESOS MEXICANOS\n\n",total_dinero,peso_mexicano);
  124. break;
  125. case 3:
  126. printf("\n$%.2f EQUIVALE A %.2f EUROS\n\n",total_dinero,euro);
  127. }
  128. printf("SI DESEA SALIR PRESIONE 1 O DE LO CONTRARIO PRESIONE OTRO NUMERO: ");
  129. scanf("%d",&saliryesno);
  130. switch(saliryesno){
  131. case 1:
  132. salir=1;
  133. }
  134. }
  135. }


Título: Re: Ayuda con un switch
Publicado por: abaadoon en 10 Febrero 2016, 20:50 pm
ejemplo
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define uno 10
  4. #define personas 99
  5. #define nombres 50
  6. int i, opc, cont;
  7. float  suma;
  8. struct empleado{
  9.  int dt;
  10.  float pd, cs;
  11.  char x[personas][nombres]; /*99 para almacenar el numero de personas y 50 para los nombres*/
  12. };
  13. struct empleado datos[uno];
  14. void menu();
  15. void dato();
  16. void resultado();
  17. void pagototal();
  18. void error();
  19. void menu(){
  20. system("reset");
  21. printf("----Menu------\n");
  22. printf("1- ingresar datos\n");
  23. printf("2- resultado\n");
  24. printf("3- resultado de todos los empleados \n");
  25. printf("4- salir\n");
  26. printf("ingrese la opcion: \n");
  27. scanf("%d",&opc);
  28. switch(opc){
  29. case 1: dato();
  30. break;
  31. case 2: resultado();
  32. break;
  33. case 3: pagototal();
  34. break;
  35. case 4: system("exit");
  36. break;
  37. default: error();
  38. break;
  39. }
  40. }
  41.  
  42. void dato(){
  43.  system("clear");
  44.  printf("cuantas personas hay (max 99): ");
  45.  scanf("%d",&cont);
  46.  for(i=0;i<cont;i++){
  47.    printf("nombre la persona [%d]: \n",i+1);
  48.    setbuf(stdin,NULL);
  49.    fgets(datos[i].x[i],nombres,stdin);
  50.    printf("dias trabajados de la persona %d: \n",i+1);
  51.    scanf("%d",&datos[i].dt);
  52.    printf("pago por dia de la persona %d: \n",i+1);
  53.    scanf("%f",&datos[i].pd);
  54.  }
  55.  system("read -p 'presione enter para continuar' var ");
  56.  menu();
  57. }
  58.  
  59. void resultado(){
  60. system("reset");
  61. for(i=0;i<cont; i++){
  62. datos[i].cs=datos[i].dt*datos[i].pd;
  63.     printf("persona %d nombre: %s y salario %f \n", i+1, datos[i].x[i], datos[i].cs);
  64.   }
  65.   system("read -p 'presione enter para continuar' var ");
  66.   menu();
  67. }
  68. void pagototal(){
  69. system("reset");
  70.  
  71. for(i=0;i<cont; i++){
  72. datos[i].cs=datos[i].dt*datos[i].pd;
  73. suma=suma+datos[i].cs;
  74. }
  75. printf("el salario total es: %f\n",suma);
  76.   system("read -p 'presione enter para continuar' var ");
  77.   menu();
  78. }
  79. void error(){
  80. system("reset");
  81. printf("error opcion no valida\n");
  82. system("read -p 'presione enter para continuar' var ");
  83. menu();
  84. }
  85.  
  86. int main(){
  87. menu();
  88. }
  89.  


Título: Re: Ayuda con un switch
Publicado por: BlackM4ster en 10 Febrero 2016, 21:20 pm
geshi please


Título: Re: Ayuda con un switch
Publicado por: ZeroMiku en 11 Febrero 2016, 22:44 pm
abaadoon, muchisimas gracias me sirvo completamente, estaba preocupado porque era mi trabajo de examen y solo me faltaba eso, otra vez: muchas gracias. :D ;-)


Título: Re: Ayuda con un switch
Publicado por: abaadoon en 12 Febrero 2016, 04:28 am
de nada un gusto en ayudar


Título: Re: Ayuda con un switch
Publicado por: Eleкtro en 14 Febrero 2016, 16:47 pm
¿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.
(http://qbnz.com/highlighter/images/geshi.png)


Título: Re: Ayuda con un switch
Publicado por: Eternal Idol en 14 Febrero 2016, 17:01 pm
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.


Título: Re: Ayuda con un switch
Publicado por: abaadoon en 14 Febrero 2016, 18:57 pm
si si disculpen  :(