C Programming - Control Instructions - Discussion

Discussion Forum : Control Instructions - Find Output of Program (Q.No. 16)
16.
What will be the output of the program?
#include<stdio.h>
int main()
{
    int x = 10, y = 20;
    if(!(!x) && x)
        printf("x = %d\n", x);
    else
        printf("y = %d\n", y);
    return 0;
}
y =20
x = 0
x = 10
x = 1
Answer: Option
Explanation:

The logical not operator takes expression and evaluates to true if the expression is false and evaluates to false if the expression is true. In other words it reverses the value of the expression.

Step 1: if(!(!x) && x)
Step 2: if(!(!10) && 10)
Step 3: if(!(0) && 10)
Step 3: if(1 && 10)
Step 4: if(TRUE) here the if condition is satisfied. Hence it prints x = 10.

Discussion:
13 comments Page 2 of 2.

Vignesh R said:   1 decade ago
Some one please help I cannot get this program.

Sundar said:   1 decade ago
The following program with output will help you understand this problem clearly.

#include<stdio.h>
int main()
{
if(2) printf("2 is Evaluated to True. \n");
if(-2) printf("-2 is Evaluated to True. \n");
if(0.2) printf("0.2 is Evaluated to True. \n\n");

if(!0) printf("0 - Evaluated to False. \n");
return 0;
}


//Output:

2 is Evaluated to True.
-2 is Evaluated to True.
0.2 is Evaluated to True.

0 - Evaluated to False.

Navi said:   1 decade ago
Didn't get you. How if loop becomes true. ?


Post your comments here:

Your comments will be displayed after verification.