import random n=int(input()) num=100000 plus=0 h=0 for i in range (num): while plus<50: a=random.randint(1,n) plus=plus+a h=h+plus p=h/num print("%.1f"%p) 错在哪里
时间: 2024-02-22 16:00:19 浏览: 153
import turtle import time def LittleHeart(): for i in range(
这段代码的问题在于缩进不正确。最后一行 `print("%.1f"%p)` 缩进太多了,应该和 `p=h/num` 在同一层级。
另外,如果 `plus` 的值一直小于 `50`,那么这个 `while` 循环就会一直执行下去,导致程序进入死循环。建议加入一个计数器,当循环次数超过一定值时,强制退出循环。
以下是修改后的代码:
```python
import random
n = int(input())
num = 100000
p = 0
h = 0
for i in range(num):
plus = 0
count = 0
while plus < 50 and count < 100: # 添加计数器,防止进入死循环
a = random.randint(1, n)
plus += a
count += 1
h += plus
p = h / num
print("%.1f" % p)
```
阅读全文