ch12 — 多次元配列の総合演習
スライドで見るこの章を AI と学ぶ
演習問題の詳細
この章の演習問題の内容を読めます。実際に手元で解くには教材リポジトリを clone してください。
ドリル 01 — 各学生の平均点を出力
問題
標準入力で 3 行のデータが与えられます。各行は次の形式です。
名前,国語の点,数学の点,英語の点
入力例:
太郎,80,70,90
花子,60,90,90
次郎,100,100,70
各学生について、3 教科の 平均点 を計算し、次の形で 1 行ずつ出力してください。
名前: 平均
期待される出力:
太郎: 80
花子: 80
次郎: 90
ヒント
- 1 行ずつ
fgets(STDIN)で読み、explode(",", $line)で分割 - 1 件分を
['name' => ..., 'scores' => [...]]のような連想配列にして配列に追加 array_sum($scores) / count($scores)で平均- 今回は割り切れる点数になっているので、
echo $avgでそのまま整数として表示される
🧪 ブラウザで試す
スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。
PHP ランタイム未読込
ドリル 02 — 教科ごとのクラス平均を出力
問題
標準入力で 3 行のデータが与えられます。各行は次の形式です。
名前,国語の点,数学の点,英語の点
入力例:
太郎,60,80,100
花子,90,80,70
次郎,90,80,100
各教科のクラス平均 (3 人の平均) を計算し、国語 → 数学 → 英語 の順に 1 行ずつ出力してください。
期待される出力:
80
80
90
ヒント
- 各行を 2 次元配列に組み立てる (名前は無視してよいし、
'scores'キーに点数だけ入れてもよい) - 外側 = 教科 (列)、内側 = 学生 (行) で for ループ
- 各教科について
$sum += $row[$j];し、最後に学生数で割る - 今回は割り切れる点数になっているので
echo $avgでそのまま整数として表示される
🧪 ブラウザで試す
スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。
PHP ランタイム未読込
演習問題(2問)
サイト内で問題文・雛形・解答例を確認できます。実際に手元で解くには教材リポジトリを clone してください。
完了にすると進捗に反映されます