Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: AnungUnRama en 9 Mayo 2013, 01:03 am



Título: ¿Me ayudarían a corregir este código?
Publicado por: AnungUnRama en 9 Mayo 2013, 01:03 am
#include<stdio.h>
#include<conio.h>
int main()
{
      int TT,SB,ANM,canti,cost,z,salir;
      do {
          printf(" \n Ingrese la clave correcta por favor \n");
          scanf("%d", &z);
          } while (z != 123);
      rp: printf("\n");
      rsalir: printf("\n");
      printf("\n ¿Qué desea ordenar? \n (Vacas=1, Dinosaurios=2, Pavos=3) \n");
      scanf("&d", &ANM);
      if (ANM=1)
      cost=200;
      else if (ANM=2)
      cost=600;
      else if (ANM=3)
      cost=100;
      else
      goto rp;
      printf("\n ¿Qué cantidad desea ordenar? \n");
      scanf("%d", &canti);
      SB=canti*cost;
      TT=TT+SB;
      printf("\n Producto: %d", ANM);
      printf("\n Costo: %d", cost);
      printf("\n Cantidad: %d", canti);
      printf("\n Subtotal: %d", SB);
      printf("\n ¿Desea ordenar algo mas? \n (si != 0, no=0) \n");
      scanf("%d", &salir);
      getchar();
      if (salir != 0)
      goto rsalir;
      else
      printf("Su total es: %d", TT);
}


Título: Re: ¿Me ayudarían a corregir este código?
Publicado por: nicolas_cof en 9 Mayo 2013, 01:10 am
Creo que deberias pasarte por esta sección...

Reglas Subforo de Programación C/C++ (http://foro.elhacker.net/programacion_cc/reglas_del_subforo-t251603.0.html)

Acuerdate de usar los tags para postear codigo fuente

[code=c] Codigo fuente [/code]

[code] Codigo fuente [/code]

Salu2


Título: Re: ¿Me ayudarían a corregir este código?
Publicado por: AnungUnRama en 9 Mayo 2013, 01:25 am
Muchas gracias, no lo había visto. (:


Título: Re: ¿Me ayudarían a corregir este código?
Publicado por: Luchoz95 en 9 Mayo 2013, 01:26 am
la verdad que nunca utilice la librería conio, pero no veo errores en el código, solamente limpia el buffer antes de cada scanf con fflush!
Código
  1. fflush(stdin);


Título: Re: ¿Me ayudarían a corregir este código?
Publicado por: nicolas_cof en 9 Mayo 2013, 01:30 am
Luchoz95, deberias leer esta sección...

[Nivel Basico] Lo que no hay que hacer en C/C++ (http://bit.ly/9frQME)

Salu2


Título: Re: ¿Me ayudarían a corregir este código?
Publicado por: amchacon en 9 Mayo 2013, 10:58 am
la verdad que nunca utilice la librería conio, pero no veo errores en el código, solamente limpia el buffer antes de cada scanf con fflush!
Código
  1. fflush(stdin);
fflush(stdin) debe ser algo prohibido de usar. Solo funciona en Windows, es una buena costumbre hacer aplicaciones multiplataforma.


Título: Re: ¿Me ayudarían a corregir este código?
Publicado por: leosansan en 9 Mayo 2013, 16:30 pm
Tienes un error en

Código
  1. scanf("&d", &ANM);

que debería ser

Código
  1. scanf("%d", &ANM);

Además del uso innecesario y no conveniente de la librería conio, como ya te han indicado en el enlace de nicolas_cof.

Además la variable TT has de inicializarla a cero y mejor no usar goto, hay otras opciones menos impredecibles:


Código
  1. #include<stdio.h>
  2. #include<locale.h>
  3. int main()
  4. {
  5.      setlocale(LC_ALL, "Spanish");
  6.      int TT=0,SB,ANM,canti,cost,z,salir;
  7.      do {
  8.          printf(" \n Ingrese la clave correcta por favor \n");
  9.         scanf("%d", &z);
  10.          } while (z != 123);
  11.      while (1){
  12.        do {
  13.        printf("\n ¿Qué desea ordenar? \n (Vacas=1, Dinosaurios=2, Pavos=3) \n");
  14.      scanf("%d", &ANM);
  15.      if (ANM==1)
  16.        cost=200;
  17.      else if (ANM==2)
  18.        cost=600;
  19.      else  if (ANM==3)
  20.        cost=100;
  21.      else printf("\n\nIngrese 1, 2 o 3\n");
  22.      }while (ANM<1 || ANM>3);
  23.      printf("\n ¿Qué cantidad desea ordenar? \n");
  24.      scanf("%d", &canti);
  25.      SB=canti*cost;
  26.      TT+=SB;
  27.      printf("\n Producto: %d", ANM);
  28.      printf("\n Costo: %d", cost);
  29.      printf("\n Cantidad: %d", canti);
  30.      printf("\n Subtotal: %d", SB);
  31.      printf("\n ¿Desea ordenar algo mas? \n (si != 0, no=0) \n");
  32.      scanf("%d", &salir);
  33.      if (salir == 0)
  34.       break;
  35.    }
  36.       printf("Su total es: %d", TT);
  37.       return 0;
  38. }
  39.  

Y he aquí una salida del código:

Código
  1.  
  2. Ingrese la clave correcta por favor
  3. 123
  4.  
  5. ¿Qué desea ordenar?
  6. (Vacas=1, Dinosaurios=2, Pavos=3)
  7. 6
  8.  
  9.  
  10. Ingrese 1, 2 o 3
  11.  
  12. ¿Qué desea ordenar?
  13. (Vacas=1, Dinosaurios=2, Pavos=3)
  14. 1
  15.  
  16. ¿Qué cantidad desea ordenar?
  17. 3
  18.  
  19. Producto: 1
  20. Costo: 200
  21. Cantidad: 3
  22. Subtotal: 600
  23. ¿Desea ordenar algo mas?
  24. (si != 0, no=0)
  25. 1
  26.  
  27. ¿Qué desea ordenar?
  28. (Vacas=1, Dinosaurios=2, Pavos=3)
  29. 2
  30.  
  31. ¿Qué cantidad desea ordenar?
  32. 4
  33.  
  34. Producto: 2
  35. Costo: 600
  36. Cantidad: 4
  37. Subtotal: 2400
  38. ¿Desea ordenar algo mas?
  39. (si != 0, no=0)
  40. 0
  41. Su total es: 3000

Saluditos!. ....   (http://st.forocoches.com/foro/images/smilies/ciao.gif)

P.D: El uso de la librería locate y lo de spanish es para usar el teclado con caracteres en español, acentos y signos como ¿, si no te salen símbolos "raros".