よくわからないけどcygwinのgccではできました
>553は
int a=0
にしてるから毎回0が入ってるだけかと
ループ内でも宣言は1度だけで値は保持してます

for{
int a;
a=a+1;
}

だとaは1ずつ増えていきます