¿Me ayudarían a corregir este código?

Iniciado por AnungUnRama, 9 Mayo 2013, 01:03 AM

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

AnungUnRama

#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);
}

nicolas_cof

#1
Creo que deberias pasarte por esta sección...

Reglas Subforo de Programación C/C++

Acuerdate de usar los tags para postear codigo fuente

[code=c] Codigo fuente [/code]

[code] Codigo fuente [/code]

Salu2

AnungUnRama


Luchoz95

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!
fflush(stdin);


amchacon

Cita de: 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!
fflush(stdin);
fflush(stdin) debe ser algo prohibido de usar. Solo funciona en Windows, es una buena costumbre hacer aplicaciones multiplataforma.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

leosansan

#6
Tienes un error en

Código (cpp) [Seleccionar]
scanf("&d", &ANM);

que debería ser

Código (cpp) [Seleccionar]
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 (cpp) [Seleccionar]
#include<stdio.h>
#include<locale.h>
int main()
{
     setlocale(LC_ALL, "Spanish");
     int TT=0,SB,ANM,canti,cost,z,salir;
     do {
         printf(" \n Ingrese la clave correcta por favor \n");
        scanf("%d", &z);
         } while (z != 123);
     while (1){
       do {
       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 printf("\n\nIngrese 1, 2 o 3\n");
     }while (ANM<1 || ANM>3);
     printf("\n ¿Qué cantidad desea ordenar? \n");
     scanf("%d", &canti);
     SB=canti*cost;
     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);
     if (salir == 0)
      break;
   }
      printf("Su total es: %d", TT);
      return 0;
}


Y he aquí una salida del código:

Código (cpp) [Seleccionar]


Ingrese la clave correcta por favor
123

¿Qué desea ordenar?
(Vacas=1, Dinosaurios=2, Pavos=3)
6


Ingrese 1, 2 o 3

¿Qué desea ordenar?
(Vacas=1, Dinosaurios=2, Pavos=3)
1

¿Qué cantidad desea ordenar?
3

Producto: 1
Costo: 200
Cantidad: 3
Subtotal: 600
¿Desea ordenar algo mas?
(si != 0, no=0)
1

¿Qué desea ordenar?
(Vacas=1, Dinosaurios=2, Pavos=3)
2

¿Qué cantidad desea ordenar?
4

Producto: 2
Costo: 600
Cantidad: 4
Subtotal: 2400
¿Desea ordenar algo mas?
(si != 0, no=0)
0
Su total es: 3000


Saluditos!. ....  

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".