用户在以逗号分隔的列表中输入硬币,然后在他们想要的更改量之前放置一个冒号。我们有硬币:£1(100p),50p,20p,10p,5p,2p和1p,我们希望给客户57p。数据输入如下:100,50,20,10,5,2,1:57
。用最简单的方式给用户更改。
这是我的代码:
user_input = gets
i = 0
change_needed = 67
coins = [50,5,20,1,5]
check_input = user_input.length
coins = user_input.split(',')
change_needed = user_input.split(':')
coins_length = coins.length
coins.map!(&:to_i)
coins = coins.sort {|a,b| b <=> a}
if check_input < 100 then
while change_needed != 0 do
if change_needed - coins[i] then
change_needed -= coins[i]
else
i += 1
puts "#{i} is the number in the coin array"
end
end
else
end
我在第if change_needed - coins[i] then
行上收到以下错误消息:
rb:17:在` - '中:没有将Fixnum隐式转换为数组(TypeError)
我不明白这个错误信息。这似乎是一个简单的修复,但我无法掌握我需要用我的代码来修复它。
答案 0 :(得分:1)
在FXMLLoader
中,您将change_needed设置为数组,而不是设置为int。
尝试更换:
change_needed = user_input.split(':')
与
coins = user_input.split(',')
change_needed = user_input.split(':')