oouou2022 发表于 2023-1-12 13:15:07

各位大佬帮我看看哪里出错了

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 13:15:08

本帖最后由 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)

chinajz 发表于 2023-1-12 17:49:04

#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是局部变量,最后以想作全局变量用,在最前面定义试试

ludashuai 发表于 2023-1-12 18:07:31

你这个代码只在最后一次循环的时候跑了一遍 ,并没有累加起来,都重新回到0了

oouou2022 发表于 2023-1-12 23:52:46

万分感谢,我发这个帖子只是抱着试一试的心态,没想到竟然有人回复!谢谢!
页: [1]
查看完整版本: 各位大佬帮我看看哪里出错了