Autor
|
Tema: [C] Error en código de ejercicio (Leído 6,222 veces)
|
audiogalaxy.
Desconectado
Mensajes: 24
|
Ando codificando este:En un estacionamiento, se cobra de la siguiente manera: los primeros 10 minutos son gratis, los siguientes 30 minutos tiene un valor de $0.30 y la hora $0.60. diseñe un programa que reciba tanto minutos como horas y muestre lo que debe cancelar el cliente. Tomando en cuenta que si es Martes y Sábado se hace un descuento del 12.56% sobre el monto total.#include<stdio.h> int main() { int min,hora,pagarporhora,montobruto; float descuento,pagarpormin,montoapagar; char dia[7]; printf ("Indique la cantidad de minutos: "); printf("Indique el numero de horas: "); if (min<=10) { pagarpormin=0.0; } else if (min<=30) { pagarpormin=0.3; } else pagarpormin=0.6; pagarporhora=hora*0.6; montobruto=pagarpormin+pagarporhora; if ((dia=="sabado") || (dia=="martes")){ descuento=montobruto*12.56/100; } else descuento=0; montoapagar=montobruto-descuento; printf("Su monto a pagar es:$ %f", montoapagar ); }
El programa corre pero no devuelve los valores requeridos. ¿En qué ando fallando?
|
|
|
En línea
|
Qué sería de dios sin el Hombre.
|
|
|
Almapa
Desconectado
Mensajes: 111
|
A mi me estaba dando fallos para pasar pagarporhora y montobruto de int a float, pero bueno si a ti te va bien, mejor. Yo habiendo definido estas dos variables como float también y poniéndole: system("pause"); // Para que no desaparezca la pantalla rápidamente
Habiendo incluido la librería iostream, si que obtengo el resultado. Creo que no hay ningún fallo.
|
|
|
En línea
|
|
|
|
audiogalaxy.
Desconectado
Mensajes: 24
|
Al ponerle que estuve 1 hora con 30 minutos me cobra $ 0.900 Incluso si le pongo que fue sabado o lunes. Ahí tendría que haber diferencia.
|
|
|
En línea
|
Qué sería de dios sin el Hombre.
|
|
|
pacoperico
Desconectado
Mensajes: 100
|
char dia[7];
Tienes declarado dia como un arreglo de caracteres, pero cuando luego haces: scanf ("%d",&dia); estas intentando guardar un valor de tipo decimal en ese arreglo de caracteres. Tendrias que usar el especificador %s, que es el fomato de tipo cadena, en el primer argumento del scanf(): scanf ("%s", &dia)
Ademas, el nombre de un arreglo es en realidad un puntero del primer elemento de un arreglo, por lo que no tiene mucho sentido que uses el operador direccion en el segundo argumento de ese scanf(), que deberia quedar finalmente asi: scanf ("%s", dia)
|
|
|
En línea
|
|
|
|
audiogalaxy.
Desconectado
Mensajes: 24
|
A ti sí te obedece a los datos que pongas?
A mi no, es decir, ya sólo le falta obedecer cuando le digo que si es marte o sábado realice el descuento.
|
|
|
En línea
|
Qué sería de dios sin el Hombre.
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Para comparar la cadena ingresada con las literales "sabado" y "martes" tienes que seguir el consejo que te dieron en tu otro tema: utilizar la función strcmp.
Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
Almapa
Desconectado
Mensajes: 111
|
Efectivamente, con la siguiente línea si que obedece al día insertado if (strcmp(dia,"sabado")==0||strcmp(dia,"martes")==0)descuento=montobruto*12.56/100;
|
|
|
En línea
|
|
|
|
audiogalaxy.
Desconectado
Mensajes: 24
|
Listo! \o/ Una duda: ¿Tiene que ver que, como me dices, al usar strcmp al inicio tenga que cambiar el int main()
por int main(int argc, char * argv[])
? ¿Ahí qué estás indicando?
|
|
|
En línea
|
Qué sería de dios sin el Hombre.
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
Al ejecutar un programa, se le pueden proporcionar datos (muy util para transmitir datos entre programas).
Si no los vas a usar, puedes dejarlo en blanco.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
podrian ayudarme con el codigo de este ejercicio
Ejercicios
|
Davidoff
|
6
|
7,685
|
18 Octubre 2009, 14:10 pm
por h0oke
|
|
|
[Código] Cuadrado del primero - Ejercicio [Python]
Scripting
|
@Sthéfano
|
4
|
6,568
|
8 Enero 2011, 17:44 pm
por [L]ord [R]NA
|
|
|
problema codigo ejercicio en c , dudas
Ejercicios
|
vani18
|
0
|
3,394
|
13 Noviembre 2010, 15:02 pm
por vani18
|
|
|
me aparece un error en este ejercicio
Programación C/C++
|
terry2602
|
4
|
2,628
|
30 Mayo 2012, 05:24 am
por durasno
|
|
|
Error en ejercicio de clase
Programación C/C++
|
foreground
|
3
|
2,965
|
14 Octubre 2012, 17:07 pm
por bemone
|
|