There are a few problems.
* Your input loop will never exit. On EOF STDIN.gets will return nil
and then you call nil.to_f which is 0.0, which is a true value.
* Your output needs new lines.
Consider
----
input = []
while a = STDIN.gets
input << a.to_f
end
average = input.inject(0) {|m,x| m = m+x} / input.size
count = input.count {|x| x > average}
print "Average = #{average}\n"
print "Number of elements greater than Avg = #{count}\n"
----
On 3/27/06, Craig Schweitzer <cschweitzer / cfl.rr.com> wrote:
> Would this work to find the mean average and the number of elements
> greater than the average?
>
>
>
> # Calculating Avg and # of elements greater than Avg. in Ruby
>
> sum = 0.0
> n = 0
> count = 0
>
> while figure = STDIN.gets.to_f
> sum += figure
> n += 1
> end
>
> average = sum / n
> puts "Average = #{average}"
>
> while figure = STDIN.gets.to_f
> if figure > average
> count +=1
> end
> end
>
> puts "Number of elements greater than Avg = #{count}"
>
> --
> Posted via http://www.ruby-forum.com/.
>
>