void calculate(){
int x=3, y=3, z=1;
printf("%d\n",z+=x<y ? 10:20 );
}
The above code prints 21.
I understand that first, the program will evaluate x < y => 0, then z = z + 0 = 1, shouldnt the program prints 10 because 1 is another form of true.
The program clearly picked the second option, and it also increments it to 21, could someone please explain?