#include<stdio.h>
int main()
{
int k=35;
printf("\n %d %d %d",k==35,k=50,k>40);
return 0;
}
please explain the logic behind this program very clearly sir and give the output
1
Expert's answer
2015-07-21T03:09:54-0400
Solve Output:
0 50 0 Explain: Output executing from right to left Since 35<40, we have false value and as integer this expression have value 0 In printf exist assignment to k, it execute first. So, at printf value of k is 50. Since k=50, second output – is output k, so, we have 50 Since 50≠35, we have false value and as integer this is expression have value 0
It is compiler-dependent, for example, in GCC the result is 0 50 0.
First, it prints result of comparison k > 40: but k equals 35 and
answer is false, converted to int, 0. Second, assignment k = 50, and
result is printed. Third, comparison k == 35 is printed: but k equals
50 and answer is false, converted to int, 0.
heena
31.01.16, 21:37
int k=35; printf("\n %d %d %d",k==35,k=50,k>40); y the output is
executing from right to left want u to please explain its solution
Leave a comment
Thank you! Your comments have been successfully added. However, they need to be checked by the moderator before being published.
Comments
It is compiler-dependent, for example, in GCC the result is 0 50 0. First, it prints result of comparison k > 40: but k equals 35 and answer is false, converted to int, 0. Second, assignment k = 50, and result is printed. Third, comparison k == 35 is printed: but k equals 50 and answer is false, converted to int, 0.
int k=35; printf("\n %d %d %d",k==35,k=50,k>40); y the output is executing from right to left want u to please explain its solution
Leave a comment