#include
int main(void)
{
int i=10;
if(i==(20||10))
printf(\"True\");
else
printf(\"False\");
return 0;
}
look at if(i==(20||10)). Due to the inner parentheses, 20||10 is evaluated first, yielding 1. Then, variable i, whose value is 10 is compared to 1, resulting 0.
In C, and 0 stands for False, while all non-zero values means True. So the condition comes to be False. Thus, "False" is printed.
This line if(i==(20||10)) always evaluates to i==1 as Alk said in comments - (20||10) evaluates to 1, hence when you compare i == 1, that is why you get False as the output. A non-Zero value in C implies true.
Read about Short-circuit evaluation
Perhaps this is what you wanted:
int i=10;
if(i==20 || i == 10)
printf("True");
else
printf("False");