初学者なんだが教えて欲しい

状況:作ったプログラムが思うように動かないから途中の値をprintfで出力して検証中

コードの内容を大雑把に書くと

A[1] = 12
・・・
for( j = x - 1; j >= 0 ,--j ) (jは最初1)
・・・
if ( j != 0 )
printf( "a1=%d, j=%d\n", A[j], j )
if
 ・・・
 else
 if
printf( "a2=%d, j=%d\n", A[j], j )
   ・・・
みたいな処理をさせると出力結果が

a1=12, j=1
a2=0, j=1

階層が深くなると値が変わるんだが、何が原因かわかる人いる?