ploblema al compilar ejercicio en C

Iniciado por DARKDMR, 20 Octubre 2010, 05:15 AM

0 Miembros y 1 Visitante están viendo este tema.

DARKDMR

Buenas amigos eh aquí mi inquietud:
me mandaron a hacer este ejercicio:
elabore un programa que permita calcular el monto final a pagar en un supermercado a partir de el monto de los alimentos, perfumería y otros. en el caso de los alimentos no se cobra impuesto, en el caso de perfumería y otros se cobrara un impuesto del 5%.
este es mi código:

#include<stdio.h>
int main()
{
int monto,alim,perf,otros;
int perft,otrost;
int esperar;
printf("introduzca el monto a pagar en articulos de alimentos: );
scanf("%d",&alim);
printf("introduzca el monto a pagar en articulos de perfumeria: );
scanf("%d",&perf);
printf("introduzca el monto a pagar en otros articulos: );
scanf("%d",&otros);
perft=(perf*0.5)+perf;
otrost=(otros*0.5)+otros;
monto=alim+perf+otrost;
printf("el monto total a cancelar es: %d.",monto);
scanf("%d",esperar);
}

al compilarlo me marca muchos errores y no entiendo porque?

.:BlackCoder:.

Va a sonar feo, pero leete un libro desde 0  :-\

Falta el return 0; de la funcion main....
Falta cerrar comillas en el argumento de la funcion printf...
Y quien sabe q mas...

Saludos... PD: la variable esperar no tiene sentido... Para la pausa, puedes usar getchar(); o system("PAUSE"); pero es mejor getchar, el por que lo puedes conseguir en este mismo foro...
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




MG2010

Es muy simple,

recojes 3 variables.
integer perfumes, la multiplicas por 1.05;
integer otros, la multiplicas por 1.05;
alimentos, no lo multiplicas por nada;

al final sumas todo y lo imprimes.... es demasiado sencillo.
User

DARKDMR

Cita de: .:BlackCoder:. en 20 Octubre 2010, 05:22 AM
Va a sonar feo, pero leete un libro desde 0  :-\

Falta el return 0; de la funcion main....
Falta cerrar comillas en el argumento de la funcion printf...
Y quien sabe q mas...

Saludos... PD: la variable esperar no tiene sentido... Para la pausa, puedes usar getchar(); o system("PAUSE"); pero es mejor getchar, el por que lo puedes conseguir en este mismo foro...
no es por nada pero estoy viendo clase de ello y te puedo asegurar que sin colocar lo que me has dicho el programa corre lo de las comillas se me ah pasado y gracias por la ayuda.

.:BlackCoder:.

Bueh, solo dire que el hecho de que corra no significa tanto... Pero hazlo como quieras...
"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja




[L]ord [R]NA

#5
BlackCoder si no vas a responder de una manera seria por favor obvia postear, cuando no colocas el return se da un warning, no se da un error...


DARKDMR te marque las lineas donde estan los errores, si te fijas no cierras las comillas dentro de printf, por eso es que dan los errores. Tambien mira la variable que pasas al ultimo scanf deberias de pasar la direccion de memoria.
Código (c,7,9,11,17) [Seleccionar]
#include<stdio.h>
int main()
{
int monto,alim,perf,otros;
int perft,otrost;
int esperar;
printf("introduzca el monto a pagar en articulos de alimentos: );
scanf("%d",&alim);
printf("introduzca el monto a pagar en articulos de perfumeria: );
scanf("%d",&perf);
printf("introduzca el monto a pagar en otros articulos: );
scanf("%d",&otros);
perft=(perf*0.5)+perf;
otrost=(otros*0.5)+otros;
monto=alim+perf+otrost;
printf("el monto total a cancelar es: %d.",monto);
scanf("%d",esperar);
}

do-while

#6
Cita de: DARKDMR en 20 Octubre 2010, 05:31 AM
no es por nada pero estoy viendo clase de ello y te puedo asegurar que sin colocar lo que me has dicho el programa corre lo de las comillas se me ah pasado y gracias por la ayuda.

Disculpa, yo este año tambien he empezado un ciclo de programacion y te puedo asegurar que lo que enseñan esta lejos de ser correcto. Supongo que utilizaras un compilador borland (el 5.XX ejemplo) que te dejara compilar con un monton de errores que un compilador que respete el estandar no te dejara compilar.


int main()

Estas diciendo que main es una funcion que devuelve un entero. Y por mucho que diagas lo contrario estas cometiendo un error, ya que no estas devolviendo nada al entorno que lo ejecuta.

Lo de las comillas ya se te ha dicho.

Me parece que tambien te han dicho que estas guardadndo valores reales en valores enteros, por lo que estas perdiendo informacion.

Y por ultimo (creo), scanf necesita que le pases direcciones de memoria para poder cambiar variables y en alguno de los que tu has puesto (buscalo), has puesto directamente una variable en lugar de su direccion... (que por cierto, me acabo de dar cuenta, tambien te lo habian dicho...

Si se te corrige es porque no sabes o porque haces mal las cosas. Si no quieres aceptar lo que se te dice en las respuestas no preguntes. Nos ahorraras tiempo.

¡Saludos!
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!

тαптяα

con code::bloks también corre por cierto.

y si quiere hacer el costo total.

ha de sumar perft a lo otro

[L]ord [R]NA

Cita de: ハセヲ, en 21 Octubre 2010, 14:35 PM
con code::bloks también corre por cierto.

y si quiere hacer el costo total.

ha de sumar perft a lo otro

sin solucionar los errores de sintaxis que se presentan el compilador no lo compilara.

тαптяα

mingw lo compila(IDE code::blocks)

y sin ningun warning