下記のようなテーブルがあります。
|
a |
b |
c |
d |
... |
1日目 |
12 |
25 |
46 |
10 |
20 |
2日目 |
27 |
93 |
17 |
39 |
26 |
3日目 |
63 |
72 |
53 |
7 |
92 |
4日目 |
32 |
54 |
37 |
98 |
6 |
各カラムの最大値と最小値を求めます。
- テーブルは配列で入力します。(例)
12 25 46 10 20
num = []
max_array = []
low_array = []
max = 0
i = 0
t = 0
puts "何回調べますか?"
n = gets.to_i
puts "何日間調べますか?"
m = gets.to_i
puts "一日ごとに入力してください"
int = n.times.map{gets.chomp.split.map(&:to_i)}
(m - 1).times do
n.times do
num << int[i][t]
max = num.sort
i += 1
end
max_array << max[n-1]
low_array << max[0]
num = []
i = 0
t += 1
end
puts "何回目を調べますか?"
d = gets.to_i
puts "最小値は#{low_array[d -1]}です"
puts "最大値は#{max_array[d - 1]}です"
- timesメソッドをネストすることによって、
int
の二次元配列を1次元配列に変換し、ソートをしてから配列の最大値と最小値を取り出し、最大値の配列と最小値の配列に入れています。
最後に指定のカラムを出力します。