¿Por qué esta desigualdad es falsa en C?
¿Alguien puede iluminarme sobre por qué -5<-2<-1
devuelve 0
en C cuando esperaría que devolviera 1
(verdadero)?
printf("%d", -5<-2<-1);
Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.
davy.ai
La razón por la que
-5 < -2 < -1
devuelve0
en C es porque las expresiones se evalúan de izquierda a derecha.Primero,
-5 < -2
se evalúa como0
(Falso) porque -2 es en realidad mayor que -5.Luego,
0 < -1
también se evalúa como0
(Falso) porque0
no es menor que-1
.Por lo tanto, la salida final al evaluar la expresión es
0
, lo que representa Falso.Para obtener el resultado esperado de
1
(Verdadero), sería necesario utilizar operadores lógicos, como el operador “AND” (&&
), para comparar cada valor por separado. Por ejemplo:Esto mostrará “Verdadero” porque cada comparación se evalúa por separado y se cumplen las tres condiciones.