我试图改变很多事情,但最终总是没有结果。该项目应输出支付给客户所需的最低硬币数量
当我运行程序时,它确实会要求我在上输入,但我没有得到任何输出,程序也没有结束
import cs50
dollars = float(input("Change Owed: "))
quarters = 0
nickels = 0
dimes = 0
pennies = 0
total_coins = 0
while (dollars<=0):
dollars = float(input("Change Owed: "))
continue
while (dollars > 0 ):
if (dollars >= .25):
dollars = dollars - .25
quarters = quarters + 1
total_coins = total_coins + 1
if (dollars < .25 and dollars >= .10):
dollars = dollars - .10
dimes = dimes + 1
total_coins = total_coins + 1
if(dollars < .10 and dollars >= .5):
dollars = dollars - .5
nickels = nickels + 1
total_coins = total_coins + 1
if (dollars >= .1 and dollars < .5):
dollars = dollars - .1
pennies = pennies + 1
total_coins = total_coins + 1
print ("Quarters: " + str(quarters))
print ("Dimes: " + str(dimes))
print ("Nickels: " + str(nickels))
print ("Pennies: " + str(pennies))
print (total_coins)
我看到的最有可能使这个循环永远运行的错误是,您在某些位置为镍币和便士指定了错误的值。(在美元输入上循环有点奇怪,但据我所知,这是不可行的,除非用户明确输入一个负数。如果你想检查无效输入,你还需要检查根本不是数字的输入!)
事实上,您必须为每枚硬币重复相同的代码,每次重复相同的值,这使得这类错误很容易潜入。这里有一个建议的方法,可以让您只指定一次每个硬币(这样可以很容易地检查值是否正确):
这种方法的一个巧妙之处是,您可以非常轻松地添加其他种类的硬币(如
HALF_DOLLAR = 0.50
),代码只需将这一行添加到枚举中即可相关问题 更多 >
编程相关推荐