Porque el resultado de este codigo siempre es verdadero?

Iniciado por palacio29, 14 Febrero 2017, 20:58 PM

0 Miembros y 1 Visitante están viendo este tema.

palacio29

Hola

Estoy analizando el siguiente codigo

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a=5,b=6,c=8;

    if((a || (b&&c)) == ((a&&b) || (a&&c)))
    {
        printf("Verdadero");
    }
    else
    {
        printf("Falso");
    }


    return 0;
}


Basicamente lo que no entiendo es que si tengo dos variables

A=5 y B=6

Y hago A&&B ...El resultado siempre da 1.
y si hago A || b ....El resultado siempre da 1.

El mismo resultado sucede si a y b son iguales.

ivancea96

&& y || trabajan como si fuera lógica booleana. true && true == true.
Cualquier número que sea diferente a 0, será true. Si es 0, será false. Así que ahi tienes el msiterio.

A = 5; B = 6
A && B -> true && true -> true -> 1