Problem in c language
b=a+=++a; invokes undefined behavior. The code is simply wrong and buggy, since the different side effects on a aren't sequenced in relation to each other. There is no expected outcome and there is no point in reasoning about different results you might be getting. 

Details can be found at the extremely common FAQ over at SO:
Why are these constructs using pre and post-increment undefined behavior?