最高得点者名前を表示させるには、 同じ行に名前と得点が入っていることを利用する。すなわち、 名前の配列 name に最高得点を取ったラベルを入れると、名前が出ることを利用する。 max_name.rb
name = Array.new # 名前をしまう配列 : while score = gets if /(\S+)\s+(\S+)\s+(\d+)/ =~ score name[n] = $1 point[n] = $3.to_i : end max = point[0] # 最高点をしまう配列 n_max = 0 # 最高点をしまってある行をしめすラベル : while i < n if max < point[i] # i 番目の要素にある得点が最高点より高ければ max = point[i] # i 番目を最高点とせよ n_max = i # 最高点を取った i を覚えよ : end printf("最高点は %s さんの %d 点でした\n", name[n_max],max)Madoka Nishimura <madoka.koeki-u.ac.jp>