a[0] = 98 a[1] = 99 a[2] = 100 a[3] = 101
a[4] = 102 a[5] = 103
a[6] = 不明 a[7] = 不明

a[i] が非0 の間ループ回せと書いているが 肝心の終端が設定されてないから
たまたま止まっただけ

int a[] = { 98,99,100,101,102,103, 0};

にすれば結果はかわるとおもうよ?