Because:
a = a++;///will assign 'a' to 'a' then increment 'a' in the next step , but from the first step 'a' is '0' and so on
To get 100 you can do Like this:
a = ++a;////here the 'a' will be increment first then will assign this value to a so a will increment in every step
or
a++;////here the increment is the only operation will do here