would not have worked as expected. If you check this page
You can see that the unary operator ! is higher precedence than the relational operator <= so it would get evaluated first. This would have produced some confusing results!
For example, suppose a=3 and b=2.
!a would give false. (As it would for any value of a except zero.)
true<=b would give true, because true is interpreted as 1 (and false is interpreted as zero), and 1 is less than 2.
Confused yet? Unfortunately, some aspects of the way C language works is far from ideal for beginners. Even experienced programmers who are new to C can often make this type of error.