#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);
}
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
Muchas gracias, no lo había visto. (:
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);
Luchoz95, deberias leer esta sección...
[Nivel Basico] Lo que no hay que hacer en C/C++ (http://bit.ly/9frQME)
Salu2
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.
Tienes un error en
scanf("&d", &ANM);
que debería ser
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:
#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:
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!. .... (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".