Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: palacio29 en 14 Febrero 2017, 20:58 pm



Título: Porque el resultado de este codigo siempre es verdadero?
Publicado por: palacio29 en 14 Febrero 2017, 20:58 pm
Hola

Estoy analizando el siguiente codigo

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.    int a=5,b=6,c=8;
  7.  
  8.    if((a || (b&&c)) == ((a&&b) || (a&&c)))
  9.    {
  10.        printf("Verdadero");
  11.    }
  12.    else
  13.    {
  14.        printf("Falso");
  15.    }
  16.  
  17.  
  18.    return 0;
  19. }
  20.  

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.


Título: Re: Porque el resultado de este codigo siempre es verdadero?
Publicado por: ivancea96 en 14 Febrero 2017, 21:35 pm
&& 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