Hey everyone,


I've been experimenting with C programming and came across an interesting code snippet. I'm a bit confused about its behavior and was hoping you could help me out.

Code:
 #include <stdio.h>


int main()


{


            int x;


            x = 10;   


            if(x > 10)


                        x -= 10;


            else if(x >= 0)


                        x += 00;


            else if(x)


                        x += 10;


            else


                        x -= 10;


            printf("%d\n",x);


            return 0;


}
The output of this code surprised me; it's giving 10 as the output, but I expected it to be 20.In the given code, we have an integer variable x initially set to 10. The program then goes through a series of conditional statements to modify the value of x. Let's break it down step by step:

if (x > 10) - This condition is not satisfied (10 is not greater than 10), so the program moves to the next condition.


else if (x >= 0) - This condition is satisfied (10 is greater than or equal to 0). However, the statement x += 0; does not change the value of x, so it remains 10.


else if (x) - This condition is also satisfied (10 is a non-zero value). The statement x += 10; modifies the value of x to 20.
else - This block is not executed since the previous conditions were satisfied.


As a result, the final value of x after these conditions is 20,

Can someone explain why the final value of x is 10 instead of what I anticipated?


Thanks in advance for your help!