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.