Porque me sale negativo la cuenta?

Iniciado por Ddraig, 3 Octubre 2015, 22:47 PM

0 Miembros y 3 Visitantes están viendo este tema.

Ddraig

hola estoy haciendo un programa de descueto pero nose porque a la hora de colocar el numero de camisas vendidas como 3 me sale negativo y una cifra muy grande, hace poco hice otro parecido pero no tuve ningun problema, tambien se los agradeceria si me comentaran de donde sale el precio para que salga negativo
saludos!!

#include<stdio.h>
#include<conio.h>
int main()
{
    int camisas,precio,total;
    float total_neto,sub;
   
    printf("introduzca el numero de camisas vendidas: ");
    scanf("%d",&camisas);
    printf("\n\n");
    total=camisas*precio;
    if(camisas>=3)
{
    sub=total*0.20;
    total_neto=total-sub;
}
    else(camisas<3);
{
    sub=total*0.10;
    total_neto=total-sub;
}
    printf("El total es de: %d",total_neto );
    getch();
}

ivancea96

total=camisas*precio;

No inicializas el valor de precio.

Ddraig

lose pero el problema no me indica ningun precio soo el descuento que se le tiene que hacer si compra mas de 3(20%) o menor a 3(10%)

Ddraig

solo se le tiene que colocar
precio=30;
seria todo?

ivancea96

Hazlo, y verás el resultado.

No se puede aplciar un descuento a un precio inexistente.

Ddraig

ok, soy nuevo en esto por eso se me complican las cosas, ahora no me sale la cuenta si pongo 3 me sale que es igual a 81 y es igual a 72
#include<stdio.h>
#include<conio.h>

int main()
{
    int camisas,total,sub,total_neto;
    const int precio = 30;
    printf("introduzca el numero de camisas vendidas: ");
    scanf("%d",&camisas);
    total=camisas*precio;
   
    printf("\n\n");
    if(camisas>=3)
{
    sub=total*0.20;
    printf("\n\n");
    total_neto=total-sub;
}
    else(camisas<3);
{
    sub=total*0.10;
    total_neto=total-sub;
}
    printf("El total es de: %d",total_neto );
    getch();
}

ivancea96

Después de un else, no va una condición. En todo caso, iría un if. Y ese ';' sobra.

#include<stdio.h>
#include<conio.h>

int main()
{
   int camisas,total,sub,total_neto;
   const int precio = 30;
   printf("introduzca el numero de camisas vendidas: ");
   scanf("%d",&camisas);
   total=camisas*precio;
   
   printf("\n\n");
   if(camisas>=3)
{
sub=total*0.20;
total_neto=total-sub;
}
   else if(camisas<3)
{
sub=total*0.10;
total_neto=total-sub;
}
   printf("El total es de: %d",total_neto );
   getch();
}


Pero dado que la condición es la contraria del primer if, no hace falta ponerla:

#include<stdio.h>
#include<conio.h>

int main()
{
   int camisas,total,sub,total_neto;
   const int precio = 30;
   printf("introduzca el numero de camisas vendidas: ");
   scanf("%d",&camisas);
   total=camisas*precio;
   
   printf("\n\n");
   if(camisas>=3)
{
sub=total*0.20;
total_neto=total-sub;
}
   else
{
sub=total*0.10;
total_neto=total-sub;
}
   printf("El total es de: %d",total_neto );
   getch();
}

Ddraig

cierto amigo, muchas gracias por tu ayuda
saludos!