Cita de: amchacon en 24 Febrero 2014, 21:53 PMLa verdad, no lo se, solo supuse que como el anterior if filtra los mayores de 1 y menores de 5, pense que cuando metiera -1 del centinerla me mandaria al cuerno pero no lo he probado sin el.Código (cpp) [Seleccionar]if (x != -1){
}
¿Para que es ese if?
Por cierto, el codigo de arriba no es el final, lo tuve que copiar mal o al pegarlo algo falló.
es este
Código (c) [Seleccionar]
/*Programa del libro, Tema 4
* ejercicio 4.19, pagina 123
* Programa de calculos de ventas usando switch*/
#include <stdio.h>
int main()
{
float a = 2.98;
float b = 4.50;
float c = 9.98;
float d = 4.49;
float e = 6.87;
int n = 0;
int x = 0;
float total;
float a1,b1,c1,d1,e1;
float a2,b2,c2,d2,e2;
a2=b2=c2=d2=e2= 0;
do{
printf("Ingrese el codigo de producto (-1 para salir): ");
scanf("%d", &x);
if (x >= 1 && x <= 5){
printf("Ingrese las unidades vendidas: ");
scanf("%d", &n);
}
switch (x){
case 1:
a1 = a*n;
a2 += a1;
break;
case 2:
b1 = b*n;
b2 += b1;
break;
case 3:
c1 = c*n;
c2 += c1;
break;
case 4:
d1 = d*n;
d2 += d1;
break;
case 5:
e1 = e*n;
e2 += e1;
break;
case -1:
break;
case '\n':
case '\t':
case ' ':
break;
default:
printf("Introdujo un codigo erroneo\n");
break;
} /*fin de switch*/
} /*fin de do*/
while (x != -1); /*condicion de do*/
total = a2+b2+c2+d2+e2;
printf("\nEl total vendido es %f \n", total);
return 0;
}
Sin esta linea, como comento en el comentario de arriba, el resultado a veces no es correcto
Código (c) [Seleccionar]
a2=b2=c2=d2=e2= 0;
Probare a comentar el if que me dices, haber que hace.
Lo edito sobre la marcha, funciona igual sin el if que comenta amchacon