15,882,209 members
See more:
code is:

C++
```int a=20,b=10,c=5;
int I= a<b<c;
cout<<I;```
Posted
Updated 24-Mar-14 9:27am
v3
Sergey Alexandrovich Kryukov 24-Mar-14 14:41pm
Not clear. Not an appropriate question, or not a question at all. There is no such concept as "the answer of the code"...
—SA
PIEBALDconsult 24-Mar-14 15:07pm
Now you've mangled your operators with HTML.

## Solution 2

I would say "compile it and see by yourself"…, but with C++, it won't even compile. You need to declare `i` as Boolean (`bool`). Or, say, even `int`, because Boolean is actually implemented as integer.

[EDIT]

I scratched the words about not compiling code because OP later fixed it in the text of the question. OP could compile it and see what's going on.

[END EDIT]

Here is the hint for you: `bool i = a < b < c;` will be compiled as it was `bool i = (a < b) < c;` and `a < b` is Boolean.

And now, compile and run it, see what's going on and try to explain it. It's going to be easy enough.

Surprised with the result? Then try to see what's going on step by step, using the debugger. Compare with:
C++
`bool i = (a < b) & (b < c);`

Note that the real intention of the developer could be the line shown above, quite likely, so the expression shown in your question would be the result of misunderstanding. Now think why should you always avoid expressions like the one shown in your question, mixing result of comparison with numeric operand. This should be the real lesson to learn from this ridiculous example, and, in this sense, it should be useful for you.

—SA

v4

## Solution 1

Well, 20 is not less than 10, so `a<b` results in 0; 0 is less than 5, so the result of `(a<b)<c` is 1. What did you expect?