学生の平均点の計算
CoddyのPHPジャーニー「論理とフロー」セクションの一部。レッスン 36/68。
チャレンジ
簡単2 つの入力を受け取ります。既存の学生の成績簿を表す JSON オブジェクトと、学生の名前です。成績簿では学生の名前をキーとして使用し、各学生は "id" と、テストの点数を含む "grades" 配列を持ちます。
両方の入力を読み取り、JSON 文字列を成績簿の配列に変換し、指定された学生を見つけて平均点を計算し、小数点以下 2 桁に丸めた結果を出力してください。
平均点を計算するには、学生の grades 配列にあるすべての点数を合計し、点数の数で割ります。
入力形式:
- 1 行目: 既存の成績簿を表す JSON オブジェクト (例:
{"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}}) - 2 行目: 学生の名前 (例:
Alice)
期待される出力: 学生の平均点を round($average, 2) で丸め、そのまま出力します。末尾のゼロは省略されます (例: 85、88.4、76.25)
自分で試してみよう
<?php
// 成績表のJSON文字列を読み込む
$gradebookJson = fgets(STDIN);
// 生徒の名前を読み込む
$studentName = trim(fgets(STDIN));
// JSONを配列に変換する
$gradebook = (array)json_decode($gradebookJson, true);
// TODO: 以下にコードを書く
// 該当する生徒を探し、平均点を計算して小数点以下2桁に丸める
// 結果を出力する
echo $average;
?>論理とフローのすべてのレッスン
自分で練習してみよう: PHPオンラインコンパイラ