Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Bus_19 en 29 Enero 2013, 19:46 pm



Título: Duda variable
Publicado por: Bus_19 en 29 Enero 2013, 19:46 pm
Hola a todos. Tengo una duda con respecto al siguiente código. La cosa es que me sale como error de compilacion que las variables EuroaYen y EuroaDolar no se usa, cuando se puede ver claramente que están dentro del switch... no se muy bien que hacer... (soy novato)

Aquí dejo el código:
Código
  1. #include <stdio.h>
  2.  
  3. float EuroYen(float cantidadConvertir);
  4. float EuroDolar(float cantidadConvertir);
  5. float DolarYen(float cantidadConvertir);
  6. float DolarEuro(float cantidadConvertir);
  7. float YenDolar(float cantidadConvertir);
  8. float YenEuro(float cantidadConvertir);
  9.  
  10. int main ()
  11. {
  12.  
  13. int EleccionMoneda;
  14. float cantidadConvertir, EuroaYen, EuroaDolar;
  15.  
  16. EuroaDolar=0;
  17. EuroaYen=0;
  18. cantidadConvertir=0;
  19. EleccionMoneda=0;
  20.  
  21.  
  22.  
  23. printf("                 ***Conversor de monedas***\n\n");
  24.  
  25. printf("Elija la moneda cuyo valor quiera saber\n\n");
  26. printf("*    1-Euro    *\n");
  27. printf("*    2-Dolar   *\n");
  28. printf("*    3-Yen     *\n");
  29.  
  30. scanf("%d",&EleccionMoneda);
  31.  
  32. switch(EleccionMoneda)
  33. {
  34. case 1:
  35. printf("Introduzca la cantidad a convertir: \n");
  36. scanf("%f",&cantidadConvertir);
  37.  
  38. EuroaYen=EuroYen(cantidadConvertir);
  39. EuroaDolar=EuroDolar(cantidadConvertir);
  40.  
  41.  
  42. break;
  43.  
  44. case 2:
  45. printf("Introduzca la cantidad a convertir: \n");
  46. scanf("%f",&cantidadConvertir);
  47. break;
  48.  
  49. case 3:
  50. printf("Introduzca la cantidad a convertir: \n");
  51. scanf("%f",&cantidadConvertir);
  52.  
  53. break;
  54.  
  55. default: break;
  56. }
  57.  
  58.  
  59. getch();
  60. return 0;
  61.  
  62. }
  63.  
  64.  
  65. float EuroYen(float cantidadConvertir)
  66. {
  67. float Yenes=0;
  68.  
  69. Yenes=cantidadConvertir*25;
  70.  
  71. return Yenes;
  72. }
  73.  
  74. float EuroDolar(float cantidadConvertir)
  75.  
  76. {
  77. float Dolares=0;
  78.  
  79. Dolares=cantidadConvertir*1.34;
  80.  
  81. return Dolares;
  82. }
  83.  
  84. float DolarYen(float cantidadConvertir)
  85. {
  86. float Yenes=0;
  87.  
  88. Yenes=cantidadConvertir*20;
  89.  
  90. return Yenes;
  91. }
  92.  
  93. float DolarEuro(float cantidadConvertir)
  94.  
  95. {
  96. float Euro=0;
  97.  
  98. Euro=cantidadConvertir*0.74;
  99.  
  100. return Euro;
  101. }
  102.  
  103. float YenDolar(float cantidadConvertir)
  104. {
  105. float Dolares=0;
  106.  
  107. Dolares=cantidadConvertir*0.05;
  108.  
  109. return Dolares;
  110. }
  111.  
  112. float YenEuro(float cantidadConvertir)
  113. {
  114. float Euros=0;
  115.  
  116. Euros=cantidadConvertir*0.04;
  117.  
  118. return Euros;
  119. }
  120.  


Título: Re: Duda variable
Publicado por: amchacon en 29 Enero 2013, 19:59 pm
No es un error, es una advertencia del compilador. Las advertencias son solo consejos, aclaraciones, ambiguedades...

La advertencia te indicará que has creado una variable y no la has usado. Y es verdad, has declarado una variable y no la has usado para nada (tan solo le has dado un valor)

Podrías imprimirla por pantalla por lo menos:

Código
  1. printf("La cantidad es %f \n",EuroaYen);
  2. printf("La cantidad es %f",EuroaDolar);


Título: Re: Duda variable
Publicado por: avesudra en 29 Enero 2013, 20:10 pm
amchacon si le pasas al gcc al compilar este parámetro:
Código:
-Werror
Te salen esas advertencias como errores, aunque como tu dices al mostrarlas por la pantalla con printf, se van, pero queda una declaración implícita a getch que también da error. Así que no se si será la mejor solución pero esto es para desactivar eso(pasarlo al compilador como parámetro):
Código:
-Wno-error=switch
Y sustituye el getch por:
Código
O incluye:
Código
  1. #include <conio.h>//NO PORTABLE
¡Un saludo!


Título: Re: Duda variable
Publicado por: Bus_19 en 29 Enero 2013, 21:09 pm
Vale Vale estupendo, tienes toda la razón del mundo amchacon. Muchas gracias :D