Buenas noches, en el siguiente código, da igual el número que meta que me sale como erroneo. Lo único que funciona es usar EOF al inicio del programa, entonces sale correctamente, en cuanto meto algún numero ya tampoco fundiona EOF.
// Ejercicio 4.19: uso de la instrucción switch //
#include <stdio.h>
main()
{
int numprod, cantidad;
float total = 0;
printf("Por favor introduzca el n%cmero de producto y la cantidad vendida durante el d%ca (-1 en producto para terminar):\n", 163, 161);
while ( ( numprod = getchar() )!= EOF) {
scanf("%d", &cantidad);
switch (numprod) {
case 1: total += 2.98 * cantidad;
break;
case 2: total += 4.50 * cantidad;
break;
case 3: total += 9.98 * cantidad;
break;
case 4: total += 4.49 * cantidad;
break;
case 5: total += 6.87 * cantidad;
break;
default:
printf("\n\nEl n%cmero de producto no es el correcto\n", 163);
printf("Por favor introduzca el n%cmero de producto y la cantidad vendida durante el d%ca (-1 en producto para terminar):\n", 163, 161);
break;
} // Fin switch//
} //Fin de while //
printf("\n\nEl valor total de ventas es de %.2f $\n\n", total);
system("pause");
return 0;
}
He conseguido hacer el ejercicio usando este otro codigo, pero me interesaría saber hacerlo con getchar.
// Ejercicio 4.19: uso de la instrucción switch //
#include <stdio.h>
main()
{
int numprod, cantidad;
float total = 0;
printf("Por favor introduzca el n%cmero de producto y la cantidad vendida durante el d%ca (-1 en producto para terminar):\n", 163, 161);
scanf("%d", &numprod);
while (numprod != -1) {
scanf("%d", &cantidad);
switch (numprod) {
case 1: total += 2.98 * cantidad;
break;
case 2: total += 4.50 * cantidad;
break;
case 3: total += 9.98 * cantidad;
break;
case 4: total += 4.49 * cantidad;
break;
case 5: total += 6.87 * cantidad;
break;
default:
printf("\n\nEl n%cmero de producto no es el correcto\n", 163);
printf("Por favor introduzca el n%cmero de producto y la cantidad vendida durante el d%ca (-1 en producto para terminar):\n", 163, 161);
break;
} // Fin switch//
scanf("%d", &numprod);
} //Fin de while //
printf("\n\nEl valor total de ventas es de %.2f $\n\n", total);
system("pause");
return 0;
}
Gracias por todo