鱼C论坛

 找回密码
 立即注册
查看: 3225|回复: 2

[已解决]课后作业第016讲最后一题代码逻辑理解不了,求讲解

[复制链接]
发表于 2023-5-25 19:38:15 | 显示全部楼层    本楼为最佳答案   
这段代码是通过变量`last`来记录上一次抛硬币的结果是正面还是反面,然后根据这个结果来统计连续正面或反面的次数。

具体地说,如果这一次抛出的是正面,那么就将`last`设置为1(表示上一次是正面),并且将连续反面的次数`c_tails`重新设置为1(因为当前是正面,所以连续反面的次数要重新计数)。然后判断连续正面的次数是否比`max_heads`大,如果是,就将其赋值给`max_heads`;否则不做处理。最后将连续正面次数`c_heads`加1。

如果这一次抛出的是反面,那么就将`last`设置为2(表示上一次是反面),并且将连续正面的次数`c_heads`重新设置为1(因为当前是反面,所以连续正面的次数要重新计数)。然后判断连续反面的次数是否比`max_tails`大,如果是,就将其赋值给`max_tails`;否则不做处理。最后将连续反面次数`c_tails`加1。

在代码执行过程中,`last`的初值设为0是合理的,因为第一次抛硬币之前不存在上一次的结果,所以将`last`设为0是为了避免出现错误。

有用请设置最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-26 06:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表