hola amigos me encuentro con un problema lo que pasa es k quiero vender un reloj el cual elaborare un programa weno este programa tendra 2 opciones 1 el de prioporcionar la cantidad de relojes comprados 2 el precio de cada reloj y al ultimo sakara descuentos si se compran mayor o igual de 10 relojes el decuento sera de 0.18 y wal en el segundo si se compran mayor o igual a 8 se hara un descuento de 0.8 y en el tercero si es mayor o igual a 2 se hara el descuento de 0.8 pero si compra solo 1 se pagara al precio que es y la opcion 2 es para salir si alguien me pudira ayudar a correjis mi problema se los agradeceria ya que es para entregar mañana bueno aqui les dejo el codigo saludos
#include<stdio.h>
#include<stdlib.h>
void main()
{
int opc;
float ct,pre,ctp;
clrscr();
printf("BIENVENIDO ELIJA UNA OPCION PORFAVOR: ");
printf("\n\n 1. pago total con descuento");
printf("2.salir");
scanf("%d",&opc);
if(opc==1)
{
printf("escribe la cantidad de relojes comprados");
scanf("%f",&ct);
printf(" proporciona el precio de cada reloj");
scanf("%f",&pre);
}
if(ct>=10)
{
ctp=(pre-pre*0.18);
}
else(ct>=8)
{
ctp=(pre-pre*0.19);
}
if(ct>=2)
{
ctp=(pre-pre*0.8);
}
printf("el dinero total a pagar con descuento es %f",ctp);
}
if(ct==1)
{
pre=pre;
printf("el dinero que pagara por unidad es %f",pre);
}
if(opc==2)
{
printf("abandonando");
}
if(opc!=1&&opc!=2)
printf(" salir");
getch();
se los agradeceria demasiado ya k es para la escuela :(
¡Hola!
Los primeros errores que veo son:
Si tienes más de 10 relojes, le tienes que descontar el 18%, pero no multiplicarlo por 0.18! El algoritmo sería:
Precio final = Precio inicial - (Precio inicial * 0.18)
Así es como debes descontarle el 18%.
Por otra parte, en los if pones:
"Si cantidad es mayor o igual que 10...", "Si cantidad es mayor o igual que 8...", etc.
Si se cumple el primer if se van a cumplir los demás, ya que el número de relojes van a ser más de 10, por tanto, en la segunda condición van a ser más de 8, y te va a hacer más descuento de lo que debería. Por lo tanto, debes usar "else".
En "if(ct>2)", es si es mayor o igual que 2, ya que no hay ninguna condición para cuando sea 2.
En "if(ct=1)", te falta un igual. Para comparar dos valores debes usar "==".
Saludos!
Cita de: DickGumshoe en 10 Julio 2012, 13:11 PM
¡Hola!
Los primeros errores que veo son:
Si tienes más de 10 relojes, le tienes que descontar el 18%, pero no multiplicarlo por 0.18! El algoritmo sería:
Precio final = Precio inicial - (Precio inicial * 0.18)
Así es como debes descontarle el 18%.
Por otra parte, en los if pones:
"Si cantidad es mayor o igual que 10...", "Si cantidad es mayor o igual que 8...", etc.
Si se cumple el primer if se van a cumplir los demás, ya que el número de relojes van a ser más de 10, por tanto, en la segunda condición van a ser más de 8, y te va a hacer más descuento de lo que debería. Por lo tanto, debes usar "else".
En "if(ct>2)", es si es mayor o igual que 2, ya que no hay ninguna condición para cuando sea 2.
En "if(ct=1)", te falta un igual. Para comparar dos valores debes usar "==".
Saludos!
Y por supuesto debes poner las etiquetas GeSHi jeje. No en serio si no las pones casi nadie va a leer tu codigo.
Saludos.
Cita de: DickGumshoe en 10 Julio 2012, 13:11 PM
¡Hola!
Los primeros errores que veo son:
Si tienes más de 10 relojes, le tienes que descontar el 18%, pero no multiplicarlo por 0.18! El algoritmo sería:
Precio final = Precio inicial - (Precio inicial * 0.18)
Así es como debes descontarle el 18%.
Por otra parte, en los if pones:
"Si cantidad es mayor o igual que 10...", "Si cantidad es mayor o igual que 8...", etc.
Si se cumple el primer if se van a cumplir los demás, ya que el número de relojes van a ser más de 10, por tanto, en la segunda condición van a ser más de 8, y te va a hacer más descuento de lo que debería. Por lo tanto, debes usar "else".
En "if(ct>2)", es si es mayor o igual que 2, ya que no hay ninguna condición para cuando sea 2.
En "if(ct=1)", te falta un igual. Para comparar dos valores debes usar "==".
Saludos!
gracias por contestar amigo.......
¿Ya te ha salido bien?
Cita de: DickGumshoe en 10 Julio 2012, 18:31 PM
¿Ya te ha salido bien?
no amigo y con la presion de entregarlo hoy... buuu me podrias facilitar el codigo xfavor yo luego me pongo amano creo k esta es la mejor pagina para aprender a utilizar las sintaxis saludos
si alguien sabe hacerlo por faavor ayudeme.... =)
1: Usa las etiquetas GeSHi, si no, no voy a leer el codigo.
2: Quita conio.h, no lo necesitas.
3: Escribe "abandonando" en vez de "adandonando".
Son consejos para obtener respuestas.
Saludos.
Cita de: daniyo en 10 Julio 2012, 19:06 PM
1: Usa las etiquetas GeSHi, si no, no voy a leer el codigo.
2: Quita conio.h, no lo necesitas.
3: Escribe "abandonando" en vez de "adandonando".
Son consejos para obtener respuestas.
Saludos.
ya amigo ya lo sambie
alguien que me ayude a correjirlo xfavor es para entregarlo hoy a la escuela y ya casi me voy a la escuela :(
Bueno ahora se puede leer. Lo que veo es que no has corregido lo que te ha dicho DickGumshoe. Debes aplicar la formula que el te ha dicho para que te salga bien. Y lo de que si se comprueba que es menor que 10 tambien va a ser menor que 8 se soluciona poniendo los en el orden contrario y anidados, es decir si es mayor o igual que 2 compruebas si es mayor o igual que 8 y asi.
Y no has cambiado el operador '=' por '==', como tambien te ha dicho DickGumshoe.
Cita de: daniyo en 10 Julio 2012, 19:22 PM
Bueno ahora se puede leer. Lo que veo es que no has corregido lo que te ha dicho DickGumshoe. Debes aplicar la formula que el te ha dicho para que te salga bien. Y lo de que si se comprueba que es menor que 10 tambien va a ser menor que 8 se soluciona poniendo los en el orden contrario y anidados, es decir si es mayor o igual que 2 compruebas si es mayor o igual que 8 y asi.
Y no has cambiado el operador '=' por '==', como tambien te ha dicho DickGumshoe.
entonces quedaria asi???
creo que no estoy entendiendo lo que me dices ya lo cambie pero igual se sigue marcando errores :( si podrias correjirmelo xfavor para ver mis errores y asi aprender de ellos te lo agradeceria demasiado
Pon aqui los errores que te de, siempre ayuda.
Mas errores:
1º Te falta la llave de cierre del main(enrealidad no falta sino que esta mal puesta)
2º else(ct>=8)
asi no se usa un else. Busca el tema if anidados
3º No es necesario que "ct" sea un float. En este programa no creo q tengas problemas pero tal vez en otros si, ya que estas haciendo comparaciones entre un float y un int(float ct>=10 int)
4º pre=pre;
no le encuentro sentido
5º Como tenes que imprimir el total incluido el descuento, a la formula que te pasaron para calcular el descuento le tenes que multiplicar por la cantidad, ej:
ctp=(pre-pre*0.18);
total=ctp*ct;
EL tema de las condiciones lo podes resolver asi:
if(ct>=10) {... }
else if(ct>=8){....}
else if(ct>=2){....}
// no es necesario preguntar si ct==1
Saludos
Cita de: daniyo en 10 Julio 2012, 19:47 PM
Pon aqui los errores que te de, siempre ayuda.
gracias amigo solucione mi problema con la funcion switch y while y else gracias
alguien sabe como cerrar este tema???
Cita de: the_nesquik en 11 Julio 2012, 03:11 AM
alguien sabe como cerrar este tema???
Cuanto se termina de resolver una duda en este foro no se suele cerrar el tema.
Saludos.