今,数値データが配列に格納されていて,その値の一例は次のようであるとする。
-7.1, 9.8, 23.7, 5.6, 3.0, 30.8, 27.3, 23.6, 39.1, -8.9, 24.0, -6.1, 21.3, 16.0, -2.6, 22.3, 4.4, 2.2, 9.3, 24.5, -2.0, -8.7, 0.0, 15.5, 4.2
ここには全部で25個の数値があるが,負の数は誤ったデータであると考えられるので, 除外して集計するものとする。 そしてその集計結果は次のような形で出力したい。いずれの行の最後にも改行がある ことに注意。
有効なデータの数 = 19
平均値 = 16.14
これと同じ動作をするプログラムを,以下の方針で作りなさい。
・あらかじめ配列 ar に複数のデータが格納される処理が, プログラムの最初で行われているものとする。 その部分については書く必要はない。
・ただし,ar に格納されたデータのうち負のものは,誤りを含んだデータなので 集計しないようにしたい。
・for ループで 配列の要素を読み込んでいく,
・その要素がゼロ以上の値を持つデータであれば,データの数を数え上げるとともに, データを加算していく。
・ループが終了したら,上の例のように出力する。いずれの行の最後にも改行がある。
・プログラムのおよその構成は下の不完全なソースのようになっているので, 適当に補いなさい。
以下の形式で答えたい。
count = 0
sum = 0.0
for i in ????
このループの中で if 構文を使ってデータを判定して集計する。
end
puts ??????
puts ??????
自分の回答
n = ar.size
count = 0
sum = 0.0
for i in 0 .. n-1
if n >=0
sum += ar[i]
end
end
puts"有効なデータの数 = #{n}"
puts"平均値= #{ar[0] + ar[n-1] / n}"
質問は負の数を含まない式がわからないです。
あと、どこが違うかわからないです。
返答お願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。