学校で出されたプログラミングの問題を解いていたのですが
実行はできるのですがうまく答えが一致しません。
Main ######から後ろは問題の条件の部分をコピペしたのでおそらくあっているはずなので
それより上の部分でどこが違うのでしょうか。
ご指摘よろしくおねがいします。
【問題】
複数の数値データを配列で与えると, メジアンを計算して,その値を戻り値として返す メソッドを作りたい
このメソッドの内容は次のようなものである.
メソッド名は median とする.
データの配列を仮引数として受取る.
配列のデータはすでに昇順でソートされている.
データ数が奇数の場合には,中央の値をメジアンとして返す.
データ数が偶数の場合には,中央の2つの値の平均をメジアンとして返す.
【私の解答】
def median(data)
n = 0
m = 0
l = data.size - 1
if data.size % 2 == 1 then
n = data[(data.size) / 2]
return n
else data.size % 2 == 0
m = (data[1/2] + data[1/2 + 1]) /2
return m
end
end
####### Main #######
ar1 = [30.9,31.8,32.0,32.7,32.8,33.1,34.2,35.3,36.2,39.1,39.2,39.8]
ar2 = [31.0,31.3,31.7,31.7,32.3,33.8,34.0,35.2,35.2,38.8,38.8,39.6,39.7]
puts "メジアンは #{median(ar1)}です。"
puts "メジアンは #{median(ar2)}です。"
実行結果
正しい結果
メジアンは 34.25です。
メジアンは 35.5です。
私の結果
メジアンは 30.65です。
メジアンは 35.5です。
回答3件
あなたの回答
tips
プレビュー