我需要ruby方面的帮助来完成一个项目

我需要ruby方面的帮助来完成一个项目,ruby,Ruby,对于一个项目,我需要创建一个程序,允许我的老师在ruby上运行它。当他运行它时,他应该能够按a、b、c、d或e任意次数,只要他一次输入一个。这些字母代表商店里的随机物品 “a”是0.50美元或“3换1美元” “b”是1.25美元 “c”是0.75美元或“两美元四个” “d”是1美元 “e”是0.69美元 如果他按下除上述五个字母以外的任何其他字母,该程序将结束,并将吐出总金额的美元。我不知道如何做的代码,所以每三分之一的“a”是一美元,也为“c”,谁能帮我这个 除了“a”和“c”特价之外,我

对于一个项目,我需要创建一个程序,允许我的老师在ruby上运行它。当他运行它时,他应该能够按a、b、c、d或e任意次数,只要他一次输入一个。这些字母代表商店里的随机物品

  • “a”是0.50美元或“3换1美元”
  • “b”是1.25美元
  • “c”是0.75美元或“两美元四个”
  • “d”是1美元
  • “e”是0.69美元
如果他按下除上述五个字母以外的任何其他字母,该程序将结束,并将吐出总金额的美元。我不知道如何做的代码,所以每三分之一的“a”是一美元,也为“c”,谁能帮我这个

除了“a”和“c”特价之外,我所有的代码都在运行

a = 0
b = 0
c = 0
d = 0
e = 0

while true
  letter = gets.chomp

  if letter == "a"
    a += 0.50
  elsif letter == "b"
    b += 1.25
  elsif letter == "c"
    c += 0.75
  elsif letter == "d"
    d += 1.00
  elsif letter == "e"
    e += 0.69
  else
    break
  end
end

print 'Total amount is: '
puts '$%.2f'% ( a + b + c + d + e )

提前加上这些金额,很难对特殊情况做出解释。我会首先计算输入的项目,可能使用一个,类似于:

@items = { 'a' => 0, 'b' => 0, 'c' => 0, 'd' => 0, 'e' => 0 }

loop do
  letter = gets.chomp                  # get letter from keyboard
  break unless @items.has_key? letter  # break if letter is not in hash
  @items[letter] += 1                  # increment hash's letter value
end
在输入例如“a b c”之后,
@items
散列将如下所示:

{ 'a' => 5, 'b' => 2, 'c' => 1, 'd' => 0, 'e' => 0 }
为了计算总金额,我将引入一个变量:

@total = 0.0
对于特例“a”,我们必须确定我们有多少个“3换1美元”,还有多少个常规的“a”。返回两个值:

5.divmod(3) => [1, 2] # i.e. 1 x 3 + 2
使用我们的
@items
散列和
@total
变量,该变量变为:

special_count, regular_count = @items['a'].divmod(3)
@total += 1.0 * special_count
@total += 0.5 * regular_count
为非特殊情况添加金额非常简单:

@total += 1.25 * @items['b']

我想你可以自己找出剩下的项目。

你能给我们看看你的代码吗?什么是Ruby 6?请澄清您的具体问题或添加其他详细信息,以突出显示您所需的内容。正如目前所写的,很难准确地说出你在问什么。请参阅本页以获得澄清此问题的帮助。您似乎不这么认为,但语法和标点符号很重要。这股意识流是无法穿透的。你好!欢迎来到StackOverflow。你介意把你的问题加上一个吗?谢谢你编辑你的问题。请注意,“3换一美元”和“每三分之一的‘a’是一美元”是不一样的。