[C con Clase] ayuda amigos con operador lógico || ó

Programante programante en gmail.com
Vie Sep 7 22:53:28 CEST 2007


Leonel Florín Sellé escribió:
> amigos, estoy trabajando sobre c/c++ en linux, pero la verdad que he
> tenido algunos tropiesos y la verdad que me estoy desanimando, pero
> tengo que se guir a delante, por lo que les digo.
>
> mi problema es,
>
> estoy utilando la estructura if/else evaluando una doble condición
> con el operador lógico o || y la condición es esta
>
>  if (x>=90 || x<=100) printf("Si");
>
> y cuando ejecuto el programa me ejecuta la acción se cumpla o no la
> condición, se le paso a x un número fuera de este rango, me da la
> condicion como verdadera, y la verdad que no se que pasa, y trato de
> depurar el programa pero esto se vuelve loco, uso el kdevelop.
>   
¿Cómo generas un número fuera de rango?
Si la primera condición es falsa (x < 90) entonces la segunda es 
verdadera (x será menor que 100).
Si la segunda condición es falsa (x > 100) entonces la primera será 
verdadera (x será mayor que 90).
Has creado una ontología.

Creo que lo que querías hacer es

 if (x>=90 && x<=100) printf("Si");

Y para evitar problemas de "no me evalua la condición como quiero" 
sugiero usar siempre paréntesis:

 if ((x>=90) && (x<=100)) printf("Si");



> en el depurador evaluo la variable x y inspecciono la condición
> (x>=90 || x<=100), y no puedo ejecutar el programa línea por linea,
> amigos que pasa, ayudenme espero respuesta.
>   
No puedes evaluar línea por línea porque no son distintas líneas.

Un saludo




Más información sobre la lista de distribución Cconclase