質問: sum /count printf("平均点 %3.2f\n",average) printf("最低点 %3d\n",max) printf("最低点 %3d\n",min)
回答: 最初の所で、 `max = 0`ですね。なぜ100を代入したのでしょうか? ロジックを振り返って考えると、初期値として、maxにはあり得る最大値以下の値、minにはあり得る最小値以上の値を入れる必要があります。 今回は全員が全教科0点だと三教科合計最大値が0ということがあり得るので、0以下の値を入れます。 minには、全員が全教科100点だと三教科合計最小値が300という事があり得るので、300以上の値を入れます。 一般的には、「この場合はこれで十分」といちいち判断しないなら、`max = -Float::INFINITY`、`min = Float::INFINITY`とします。 あと、 `line = line.chomp!`は、 `line.chomp!`もしくは`line = line.chomp`と書くべきです。 普通は、それらをどちらも書かずに、 `c = line.chomp.split(",")` でしょうか。