Autor
|
Tema: problema con sentencia switch (Leído 2,167 veces)
|
++c
Desconectado
Mensajes: 29
|
Hola amigos, tengo un problema a la hora de ejecutar adecuadamente esta sentencia y es a la hora de cuando se introduce en un caso no sale de él, no entiendo porque break no rompe cuando termina la ejecución de la instrucción. Deseo que el usuario introduzca una opción, seguidamente introduzca un valor, se realice su cálculo de venta de ese producto y por último que muestre el total de venta de todos los productos existentes en la tienda. También observo que no obedece cuando se introduce un carácter no válido metiéndose en un bucle infinito no acertando porque.... #include <stdio.h> int main(){ int opcion; float cantidad,total=0; printf("En esta tienda se vende 5 productos con los siguientes\n"); printf("\nProducto 1: 2,98$"); printf("\nProducto 2: 4,50$"); printf("\nProducto 3: 9,98$"); printf("\nProducto 4: 4,49$"); printf("\nProducto 5: 6,87$\n"); printf("\nIntroduzca numero de producto. -1 para salir: "); while( opcion != -1){ switch( opcion ){ case 1: printf("\nIntroduzca cantidad vendida: "); printf("El precio de esta venta es: %f",cantidad *2.98); total+=cantidad*=2.98; break; case 2: printf("\nIntroduzca cantidad vendida: "); printf("El precio de esta venta es: %f",cantidad *4.50); total+=cantidad*=4.50; break; case 3: printf("\nIntroduzca cantidad vendida: "); printf("El precio de esta venta es: %f",cantidad *9.98); total+=cantidad*=9.98; break; case 4: printf("\nIntroduzca cantidad vendida: "); printf("El precio de esta venta es: %f",cantidad *4.49); total+=cantidad*=4.49; break; case 5: printf("\nIntroduzca cantidad vendida: "); printf("El precio de esta venta es: %f",cantidad *6.87); total+=cantidad*=6.87; break; default: printf("\nIntroduzca numero de producto VALIDO: "); break; } } printf("\nLas ventas totales fueron: %f\n\n ",total ); return 0; }
Cualquier aclaración se lo agradecería. Saludos y muchas gracias ++c
|
|
|
En línea
|
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
printf("\nIntroduzca numero de producto. -1 para salir: "); scanf("%d",&opcion);
Esas dos líneas deberían ir dentro del while, no fuera.
|
|
|
En línea
|
|
|
|
++c
Desconectado
Mensajes: 29
|
Hola amchacon gracias por la respuesta, en efecto ese era el problema. Me gustaría conocer un último matiz que aún no he llegado a aprender y espero conocer adelatándome en materia y es en relación a optimizar el menu de selección cuando se introduce otro carácter distinto a lo estipulado iniciando un bucle infinito. Dejo el código como lo llevo elaborado: #include <stdio.h> int main(){ int opcion; float cantidad,total=0; printf("En esta tienda se vende 5 productos con los siguientes precios:\n"); printf("\nProducto 1: 2,98$"); printf("\nProducto 2: 4,50$"); printf("\nProducto 3: 9,98$"); printf("\nProducto 4: 4,49$"); printf("\nProducto 5: 6,87$\n"); while( opcion != -1){ printf("\nIntroduzca numero de producto. -1 para salir: "); switch( opcion ){ case 1: printf("\nIntroduzca cantidad vendida: "); printf("El precio de esta venta es: %f",cantidad *2.98); total+=cantidad*=2.98; break; case 2: printf("\nIntroduzca cantidad vendida: "); printf("El precio de esta venta es: %f",cantidad *4.50); total+=cantidad*=4.50; break; case 3: printf("\nIntroduzca cantidad vendida: "); printf("El precio de esta venta es: %f",cantidad *9.98); total+=cantidad*=9.98; break; case 4: printf("\nIntroduzca cantidad vendida: "); printf("El precio de esta venta es: %f",cantidad *4.49); total+=cantidad*=4.49; break; case 5: printf("\nIntroduzca cantidad vendida: "); printf("El precio de esta venta es: %f",cantidad *6.87); total+=cantidad*=6.87; break; } } printf("\nLas ventas totales fueron: %f\n\n ",total ); return 0; }
Saludos y gracias por ayudar a personas que se inician en el mundo de la programación.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema con sentencia SQL
PHP
|
zhynar_X
|
2
|
2,044
|
19 Noviembre 2007, 20:13 pm
por дٳŦ٭
|
|
|
Duda sentencia switch
Programación C/C++
|
netca
|
3
|
2,831
|
27 Julio 2012, 05:17 am
por avesudra
|
|
|
Sentencia switch vs tablas de búsqueda
Programación C/C++
|
kutcher
|
9
|
3,340
|
5 Septiembre 2014, 21:45 pm
por Eternal Idol
|
|
|
[C] Duda sencilla - sentencia Switch
Programación C/C++
|
n-utz
|
4
|
2,226
|
31 Mayo 2016, 01:00 am
por n-utz
|
|
|
sentencia switch
Programación C/C++
|
Dumy
|
1
|
2,034
|
1 Octubre 2024, 15:22 pm
por AlbertoBSD
|
|