データから最高値を選べるようにするためには、 計算機が 1 行ずつしかデータを読み込まないことから、 どのような方法がよいか、考えよう。1 行目を読んだら、 そのデータを仮の最高点とおく。次に 2 行目を読んだら、 そのデータと 1 行目のデータと比較し、高ければ最高点を置き換える。 この方法では行番号を覚えさせなければならない。 データを配列を使って管理することにする。max.rb
: sum = 0 # 和 sum の初期化 point = Array.new # 得点をしまう配列 # point[n-1] には n 人目のデータが入る while score = gets if /(\S+)\s+(\S+)\s+(\d+)/ =~ score point[n] = $3.to_i # sum += $3.to_i n += 1 end end # average = sum/n # printf("今回の平均点は %3.1f でした。 \n", average) max = point[0] # 最高点をしまう配列 # 1 行目を仮の最高点と定める i = 0 while i < n if max < point[i] max = point[i] end i += 1 end printf("最高点は %d 点でした\n",max)