C Programming - Declarations and Initializations - Discussion

Discussion Forum : Declarations and Initializations - Find Output of Program (Q.No. 7)
7.
What is the output of the program
#include<stdio.h>
int main()
{
    int x = 10, y = 20, z = 5, i;
    i = x < y < z;
    printf("%d\n", i);
    return 0;
}
0
1
Error
None of these
Answer: Option
Explanation:
Since x < y turns to be TRUE it is replaced by 1. Then 1 < z is compared and to be TRUE. The 1 is assigned to i.
Discussion:
37 comments Page 2 of 4.

Naveen said:   1 decade ago
#include<stdio.h>
int main()
{
int x = 10, y = 20, z = 5, i;
i = x,y,z;
printf("%d\n", i);
return 0;
}

If you try the above code

step 1: = is having highest priority than ,

step2: i=10 will be initalized

step3: , operater will travell form left to right

So the out put will be 10.

Krishna said:   1 decade ago
Why it is 10 not 20 or 30?

Xyz said:   1 decade ago
Thanks wikiok your explanation helped me to understand the answer.

Palak agrawal said:   1 decade ago
Yaa anyone tell the reason in above program. Why it is 10 not 20 or 30?

Shivaji said:   1 decade ago
i=x,y,z;
Because it is
Just like below..
i=x;
y;
z;

Sai said:   1 decade ago
int main()
{
int x = 30, y = 20, z = 5, i;
i = x <y <z;
printf("%d\n", i);
return 0;
}

Please explain this program.

Deepak said:   1 decade ago
@Sai.
i=((30<20)<5); //in this (30<20) is false so it is assigned 0.
i=(0<5); //in this (0<5) is true so it is assigned 1.
i=1;

False=0, True=1

Vidya said:   1 decade ago
@Krishna,as per priority given to the operaters, '=' is having highest priority and the operator ' will move from left to right.

and given as i=x,y,z.
so,
i=x=10.

Trisha said:   1 decade ago
What is the priority of =, < and > symbols. Can anyone explain?

Indranil Roy said:   1 decade ago
I am explaining my thought.

#include<stdio.h>
int main()
{
int x = 10, y = 20, z = 5, i;
i = x < y < z;
printf("%d
", i);
return 0;
}
here i=10<20<5
Now c compiler starts execution from left side.
that is 10<20 returns TRUE and TRUE < 5 means 0 < 5 which is TRUE means Ans is 1


Post your comments here:

Your comments will be displayed after verification.