Cプログラミングの「トラブルのもと」を,整理しました. 1. 比較に= if (a = 3) aに3が代入されます.そして条件式は(3ということで)常に真になります. Cでの比較は,==です. 2. 1/2は0.5 double half = 1 / 2; halfの初期値は,0.5ではなく0です.「整数割る整数は,整数」です. 上の文であれば,素直に0.5と書くべきですが,整数型変数による割り算を,double型にしたければ,(double)n / dのようにキャストを入れます. 3. &と&&,|と||を混同する if (x >= 0 & x < 10 & a[x] != 0) xがマイナスまたは10以上の場合でも,a[x]の参照をします. 2箇所ある「&」は,「&&」にしないといけません.論理演算子&&は,まず左オペランドを評価し,偽なら,右オペランドを評価することなく,全体を偽とし