数学の点数が一番高い人は誰?
Lesson 1●値を足して最高合計点を出力しよう
右ページのプログラムと比べると、下のプログラムでは「K_point」という配列が増えました。メモで「国語の点数」と書いてあります。ここまでくれば、このプログラムは、「sakiya」「sato」「suzuki」「tanaka」という4人の生徒のテストの点数を扱っているということがわかるでしょう。名前の順番と、点数の順番が対応しています。
配列、for文、if文を組み合わせる
「i」が「0」のときは、「S_point」の1番目の値が「95」、「K_point」の1番目の値も「95」なので、合計は「190」。「SK_max = 0」なので、if文は成立します。次の合計点は「180」で不成立。「SK_max」は「190」のままです。3番目の合計点は「123」でまたもや不成立。最後の4番目の合計点は「190」なので成立します。よって、最高合計点は「190」と出力されます。
Lesson 2● 「誰の」点数なのかを出力しよう
上のプログラムには、落とし穴があります。それは、最高合計点はわかっても、「誰がその点数をとったのか」がわからないところです。しかも、190点をとった人は2人います。誰なのかを明らかにするには、どうすればよいのでしょうか。答えは、「もう一度配列の処理を行う」です。
「print(SK_max)」で最高合計点を出力したあと、もう1回、生徒の数だけ、その最高合計点と「i」番目の合計点を比較します。そして、同じ点数だったら、「name」の配列に格納された「i」番目の名前を出力する、というプログラムを書くのです。そうすれば、「sakiya」さんと「tanaka」さんが190点をとった人だということがわかります。