Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Ddraig en 3 Octubre 2015, 22:47 pm



Título: Porque me sale negativo la cuenta?
Publicado por: Ddraig en 3 Octubre 2015, 22:47 pm
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!!

Código:
#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();
}


Título: Re: Porque me sale negativo la cuenta?
Publicado por: ivancea96 en 3 Octubre 2015, 23:16 pm
Código
  1. total=camisas*precio;

No inicializas el valor de precio.


Título: Re: Porque me sale negativo la cuenta?
Publicado por: Ddraig en 3 Octubre 2015, 23:20 pm
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%)


Título: Re: Porque me sale negativo la cuenta?
Publicado por: Ddraig en 3 Octubre 2015, 23:32 pm
solo se le tiene que colocar
precio=30;
seria todo?


Título: Re: Porque me sale negativo la cuenta?
Publicado por: ivancea96 en 3 Octubre 2015, 23:40 pm
Hazlo, y verás el resultado.

No se puede aplciar un descuento a un precio inexistente.


Título: Re: Porque me sale negativo la cuenta?
Publicado por: Ddraig en 3 Octubre 2015, 23:54 pm
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
Código:
#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();
}


Título: Re: Porque me sale negativo la cuenta?
Publicado por: ivancea96 en 4 Octubre 2015, 00:39 am
Después de un else, no va una condición. En todo caso, iría un if. Y ese ';' sobra.

Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3.  
  4. int main()
  5. {
  6.    int camisas,total,sub,total_neto;
  7.    const int precio = 30;
  8.    printf("introduzca el numero de camisas vendidas: ");
  9.    scanf("%d",&camisas);
  10.    total=camisas*precio;
  11.  
  12.    printf("\n\n");
  13.    if(camisas>=3)
  14. {
  15. sub=total*0.20;
  16. total_neto=total-sub;
  17. }
  18.    else if(camisas<3)
  19. {
  20. sub=total*0.10;
  21. total_neto=total-sub;
  22. }
  23.    printf("El total es de: %d",total_neto );
  24.    getch();
  25. }

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

Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3.  
  4. int main()
  5. {
  6.    int camisas,total,sub,total_neto;
  7.    const int precio = 30;
  8.    printf("introduzca el numero de camisas vendidas: ");
  9.    scanf("%d",&camisas);
  10.    total=camisas*precio;
  11.  
  12.    printf("\n\n");
  13.    if(camisas>=3)
  14. {
  15. sub=total*0.20;
  16. total_neto=total-sub;
  17. }
  18.    else
  19. {
  20. sub=total*0.10;
  21. total_neto=total-sub;
  22. }
  23.    printf("El total es de: %d",total_neto );
  24.    getch();
  25. }


Título: Re: Porque me sale negativo la cuenta?
Publicado por: Ddraig en 4 Octubre 2015, 01:04 am
cierto amigo, muchas gracias por tu ayuda
saludos!