<p>问题是每次迭代都会减少<code>x</code>,最终会变成<code>0</code>,因此会出现错误</p>
<p>使用<code>for</code>循环迭代<code>n</code>输入,或者使用两个对象,一个用于迭代,另一个用于计算平均值</p>
<p>此外,还需要计算<code>while</code>循环外的平均值</p>
<p>试试这个:</p>
<pre><code>sum = 0.00
fee = 0
avg = 0
x = int(input("How many cars?: "))
z = x
while x > 0:
y = float(input("Parking duration for car: "))
if y <= 3:
fee = 2
print("Parking fee (RM): 2")
elif 3 < y <= 4:
fee = 2.50
print("Parking fee (RM): 2.50")
elif 4 < y <= 5:
fee = 3
print("Parking fee (RM): 3")
elif 5 < y <= 6:
fee = 3.50
print("Parking fee (RM): 3.50")
elif 6 < y <= 7:
fee = 4
print("Parking fee (RM): 4")
elif 7 < y <= 8:
fee = 4.50
print("Parking fee (RM): 4.50")
elif 8 < y <= 9:
fee = 5
print("Parking fee (RM): 5")
elif 9 < y <= 10:
fee = 5.50
print("Parking fee (RM): 5.50")
elif 10 < y <= 11:
fee = 6
print("Parking fee (RM): 6")
elif 11 < y <= 12:
fee = 6.50
print("Parking fee (RM): 6.50")
elif 12 < y <= 13:
fee = 7
print("Parking fee (RM): 7")
elif 13 < y <= 14:
fee = 7.50
print("Parking fee (RM): 7.50")
elif 14 < y <= 15:
fee = 8
print("Parking fee (RM): 8")
elif 15 < y <= 16:
fee = 8.50
print("Parking fee (RM): 8.50")
elif 16 < y <= 17:
fee = 9
print("Parking fee (RM): 9")
elif 17 < y <= 18:
fee = 9.50
print("Parking fee (RM): 9.50")
elif 18 < y <= 24:
fee = 10
print("Parking fee (RM): 10")
x = x - 1
sum = sum + fee
avg = sum / z
print("Total Fee (RM):", sum)
print("Average (RM):")
</code></pre>