C Programming - Expressions - Discussion

Discussion Forum : Expressions - Find Output of Program (Q.No. 4)
4.
What will be the output of the program?
#include<stdio.h>
int main()
{
    int x=12, y=7, z;
    z = x!=4 || y == 2;
    printf("z=%d\n", z);
    return 0;
}
z=0
z=1
z=4
z=2
Answer: Option
Explanation:

Step 1: int x=12, y=7, z; here variable x, y and z are declared as an integer and variable x and y are initialized to 12, 7 respectively.

Step 2: z = x!=4 || y == 2;
becomes z = 12!=4 || 7 == 2;
then z = (condition true) || (condition false); Hence it returns 1. So the value of z=1.

Step 3: printf("z=%d\n", z); Hence the output of the program is "z=1".

Discussion:
12 comments Page 2 of 2.

Rupali said:   1 decade ago
z = x!=4 || y == 2;
in this case when x!=4 is checked, it results TRUE & in the OR condition when the first condition becomes true the other condition is not checked.
Hence,y==2 will not be evaluated.
But ,overall value ,i.e. value of z=1 because the value of TRUE is 1.

Vinothini said:   2 decades ago
z = x!=4 || y == 2;
becomes z = 12!=4 || 7 == 2;
then z = TRUE || FALSE; Hence it returns TRUE. So the value of z=1.
how did you get z=1


Post your comments here:

Your comments will be displayed after verification.