28/08/2013, 02:22
|
| | Fecha de Ingreso: junio-2010 Ubicación: Madrid
Mensajes: 620
Antigüedad: 14 años, 6 meses Puntos: 73 | |
Respuesta: Problema Simulación Una cosa que veo que puede dar problemas son las comparaciones con aux que haces en la función define_dato. En la primera comparación:
if ((aux>0) && (aux<=(45/300)))
estás comparando aux (definida como double) con 95/300. Esta última expresión, al ser una operación entre constantes, se va a evaluar como división entera en tiempo de copmpilación, ya que ninguno de los operandos tiene punto decimal. Por tanto, 95/300 da cociente 0. Lo mismo ocurre en el resto de comparaciones que estás haciendo con aux en esa función. Prueba poniendo un punto decimal en, al menos, uno de los elementos (numerador o denominador) del cociente que comparas con aux, es decir, bastaría con poner, por ejemplo,
if ((aux>0) && (aux<=(45./300)))
con lo que ya obligas al compilador a evaluar ese cociente en coma flotante y no como entero.
Una sugerencia: En las constantes que vayas a utilizar en expresiones en coma flotante, pon siempre el punto decimal al final aunque sean valores enteros. Por ejemplo, en lugar de 5, pon 5. o, mejor aún, por legibilidad, pon 5.0
Prueba cambiando esto que te he comentado, y si sigue habiendo problemas ya buscaremos la causa del fallo.
Saludos, |