回答編集履歴

2 修正

asm

asm score 13532

2019/05/18 17:59  投稿

> ・その要素がゼロ以上の値を持つデータであれば,データの数を数え上げるとともに, データを加算していく。
なので
```ruby
nums.each do |num|
 if num >= 0
   # countを1増やす
   # sumをnumだけ増やす
 end
end
```
ですね
----
余談として「以下の方針で」以下をまるごと無視すると
```ruby
nums = [] # 省略
filtered = nums.reject(&:negative?)
count = filtered.size
sum  = filtered.sum
avg  = sum.fdiv(count) # sum /. countでは、sumが整数の時に整数除算されてしまう
avg  = sum.fdiv(count) # sum / countでは、sumが整数の時に整数除算されてしまう
puts "有効なデータの数 = #{count}"
puts "平均値         = #{avg}" unless count.zero?
```
こんな感じ
1 gc

asm

asm score 13532

2019/05/18 17:59  投稿

```ruby  
count = 0  
sum = 0.0  
 
```  
 
> ・その要素がゼロ以上の値を持つデータであれば,データの数を数え上げるとともに, データを加算していく。
なので
```ruby
nums.each do |num|
 if num >= 0
   # countを1増やす
   # sumをnumだけ増やす
 end
end
```
ですね
----
余談として「以下の方針で」以下をまるごと無視すると
```ruby
nums = [] # 省略
filtered = nums.reject(&:negative?)
count = filtered.size
sum  = filtered.sum
avg  = sum.fdiv(count) # sum /. countでは、sumが整数の時に整数除算されてしまう
puts "有効なデータの数 = #{count}"
puts "平均値         = #{avg}" unless count.zero?
```
こんな感じ

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る