print " Please enter a list of numbers "
numbers = eval(gets.chomp)
sum = numbers.reduce(:+)
print " The average is " + sum.to_s / reduce.to_f
答案 0 :(得分:2)
sum.to_s
返回一个字符串。你不能用浮点数划分字符串。并且reduce
甚至没有定义。您可能只想使用:
print " The average is #{sum.to_f / numbers.size}"
此外,在这种情况下使用eval
非常危险。想象一下如果有人输入类似system('rm -rf /')
...
答案 1 :(得分:1)
正如Spickerman所指出的那样使用eval
在这种情况下是非常危险的所以我建议你做一些像
print " Please enter a list of numbers "
numbers = gets.strip.split(" ").map(&:to_f)
sum = numbers.reduce(:+)
print " The average is #{sum/ numbers.size}"