各位大佬帮我看看哪里出错了
n = int(input("请输入一个正整数:"))i = 0
T = 0
F = 0
LT = 0
LF = 0
m = 0
M = 0
if n >= 100:
print("开始抛硬币实验...")
import random
while i < n:
num = int(random.randint(1,2))
if num == 1:
T += 1
qn = 1
pn = 1
if n <= 100:
print("正面")
if qn == 1:
LT += 1
M = LF
LF = 0
elif num == 2:
F += 1
qn = 2
pn = 2
if n <= 100:
print("反面")
if pn == 2:
LF += 1
m = LT
LT = 0
if m != 0:
if m > LT:
lt = m
elif m < LT:
lt = LT
elif m == LT:
lt = LT
if M != 0:
if M > LF:
lf = M
elif M < LF:
lf = LF
elif M == LF:
lf = LF
i += 1
print("正面的个数:",T)
print("反面的个数:",F)
print("正面最多次数:",lt)
print("反面最多次数:",lf)
各位鱼C论坛的大佬们,这是小甲鱼的模拟抛硬币的课后题(了不起的分支和循环(|||)),我的做法在最后一个要求(统计正反面最多连续次数)中频频出错
能不能帮我看看是哪里的问题? 本帖最后由 chinajz 于 2023-1-12 19:37 编辑
修改了一下,测试看看;为便于验证,加了连续次数打印
#coding=gbk
n = int(input("请输入一个正整数:"))
i = 0
T = 0#正面计数
F = 0
LT = 0
lt=0
LF = 0
lf=0
if n >= 100:
print("开始抛硬币实验...")
import random
while i < n:
num = int(random.randint(1,2)) #1正面,2反面
if num == 1:
T += 1#正面计数
if n <= 100:
print("正面")
LT += 1#正面连续次数
print(LT)
LF = 0#反面连续次数清零
else:
F += 1#反面计数
if n <= 100:
print("反面")
LF += 1#反面连续次数
print(LF)
LT=0#正面连续次数清零
if LT != 0:#连续正面取最大值
if LT >= lt:
lt = LT
if LF!= 0:#连续反面取最大值
if LF >= lf:
lf= LF
i += 1
print("正面的个数:",T)
print("反面的个数:",F)
print("正面最多次数:",lt)
print("反面最多次数:",lf) #coding=gbk
n = int(input("请输入一个正整数:"))
i = 0
T = 0#正面计数
F = 0
LT = 0
lt=0
LF = 0
lf=0
m = 0
M = 0
lt和lf是局部变量,最后以想作全局变量用,在最前面定义试试 你这个代码只在最后一次循环的时候跑了一遍 ,并没有累加起来,都重新回到0了 万分感谢,我发这个帖子只是抱着试一试的心态,没想到竟然有人回复!谢谢!
页:
[1]