問題
次のプログラムで、二次元配列arr[3][3]の対角成分(arr[0][0]+arr[1][1]+arr[2][2])の合計を求める処理の空欄[ ]に入るものはどれか。 整数型: sum ← 0 整数型: i for (i を 0 から 2 まで 1 ずつ増やす) sum ← sum + [ ] endfor
選択肢
- 1ア arr[0][i]
- 2イ arr[i][0]
- 3ウ arr[i][i]
- 4エ arr[i][2]
正解
3. ウ arr[i][i]
詳しい解説を見る解説を閉じる
解説
正解はウ。対角成分とは、二次元配列で行番号と列番号が一致する位置の要素、すなわちarr[0][0]、arr[1][1]、arr[2][2]を指す。ループ変数iが0→1→2と変化するとき、行・列の両方の添字にiを使うarr[i][i]を指定すれば、ちょうど対角線上の3要素を順に加算できる。アのarr[0][i]は0行目の3要素(横一行)、イのarr[i][0]は0列目の3要素(縦一列)、エのarr[i][2]は2列目の3要素を合計してしまうため誤りである。二次元配列では「1つ目の添字が行、2つ目の添字が列」という対応を固定して考えるのが基本であり、対角成分は添字が等しい、逆対角成分は添字の和がn−1になる、といったパターンは科目Bで頻出である。
一問一答
科目A 180問+科目B 60問