Hi anil

first of all when the program starts k = 5
then compiler enters if region
then k is incremented before it is compared with 5 ie k = 6
then condition is checked ie ++k < 5 and it comes out to be false
then as it was end operation compiler does not evaluate the second
statement ie k++/5
then it goes for or and increments the k variable and then k = 7
then it finds that condition k<=8 to be true.
now one of the condition in the or is true and it then prints the value of
k as 7
hope this helps u.

Vishal Chaudhary

2012/11/6 Anil Sharma <anilsharmau...@gmail.com>

> main()
>      {
>       int k = 5;
>       if (++k < 5 && k++/5 || ++k <= 8);
>       printf("%d ", k);
>      }
>
> the output shud be 8 but it comes out to be 7.why???
> as increment operator has higher precedence among them so increment shud
> be done throughout at first and after then other operators shud be
> evaluated.so    output shud be 8.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to algogeeks@googlegroups.com.
> To unsubscribe from this group, send email to
> algogeeks+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to