11/09/2012, 02:01
|
| | Fecha de Ingreso: junio-2010 Ubicación: Madrid
Mensajes: 620
Antigüedad: 14 años, 5 meses Puntos: 73 | |
Respuesta: c++ borland En el bucle do..while en el que ingresas los datos, la condición de salida que has puesto es
while(x!=0||y!=0);
1. Ambas comparaciones deben ir entre paréntesis:
while ( (x != 0) || (y != 0) );
y lo mismo ocurre con los ifs que vienen después.
2. Este bucle se ejecutará mientras x, ó y, o ambos, sean distintos de cero, es decir, mientras introduzcas cualquier punto distinto de (0,0). Deberías haber puesto
while ( (x == 0) || (y == 0) );
(aunque esto impedirá que utilices el origen de coordenadas como uno de los puntos a comprobar).
Una sugerencia: Cuando utilices constantes de tipo float o double, conviene poner el punto decimal, si no puedes encontrarte con que ciertas expresiones se evalúan como enteras (aunque el resultado final no vaya a serlo), pudiendo aparecer errores difíciles de descubrir (la lógica del programa es correcta). En tu caso, pondría
while ( (x == 0.0 ) || (y == 0.0) )
y del mismo modo para los ifs que vienen a continuación.
Lo que te he indicado de las constantes de tipo float o double no sería problemático en este caso concreto, pero conviene tenerlo en cuenta.
Saludos, |