鱼C论坛

 找回密码
 立即注册
查看: 1556|回复: 4

[已解决]请问哪里出了问题呢

[复制链接]
发表于 2017-9-22 21:27:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. x = 7
  2. i = 1
  3. flag = 0

  4. while i <= 100:
  5.     if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):
  6.         flag = 1
  7.     else:
  8.         x = 7 * (i + 1)
  9.         i += 1
  10.         
  11. if flag == 1:
  12.     print ("阶梯数是:",x)
  13. else:
  14.     print("在程序范围内找不到答案")
复制代码

  

    看了老半天也没看出哪里出错了 求助  谢谢
第六讲课后作业
最佳答案
2017-9-22 21:34:23
1.如果if条件成立,i值不变,循环一直进行下去,无法结束。
2.即使改正了前面的问题,x值也不会保留if成立时的值,而是最后的值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-9-22 21:32:25 | 显示全部楼层
x = 7
i = 1
flag = 0

while i <= 100:
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):
        flag = 1
    else:
        x = 7 * (i + 1)
    i += 1#缩进
        
if flag == 1:
    print ("阶梯数是:",x)
else:
    print("在程序范围内找不到答案")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-22 21:34:23 | 显示全部楼层    本楼为最佳答案   
1.如果if条件成立,i值不变,循环一直进行下去,无法结束。
2.即使改正了前面的问题,x值也不会保留if成立时的值,而是最后的值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-22 21:43:28 | 显示全部楼层
冬雪雪冬 发表于 2017-9-22 21:34
1.如果if条件成立,i值不变,循环一直进行下去,无法结束。
2.即使改正了前面的问题,x值也不会保留if成立 ...

明白了!
i += 1 要在 if else 的同一个缩进 不然会一直循环下去
非常感谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-23 15:57:25 | 显示全部楼层
本帖最后由 流浪1123 于 2017-9-23 16:01 编辑

道理是上面的道理的!
调试步骤:
进入了死循环
这个可以通过:
  1. x = 7
  2. i = 1
  3. flag = 0

  4. while i <= 100:
  5.     if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):
  6.         flag = 1
  7.         print(flag)
  8.         ####↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑###########
  9.     else:
  10.         x = 7 * (i + 1)
  11.     i += 1
  12.         
  13. if flag == 1:
  14.     print ("阶梯数是:",x)
  15. else:
  16.     print("在程序范围内找不到答案")
复制代码

这个就说明:进入了死循环。需要有个出来的条件那么。可以加一句。
  1. x = 7
  2. i = 1
  3. flag = 0

  4. while i <= 100:
  5.     if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):
  6.         flag = 1
  7.         print(flag)
  8.         i += 1
  9.         #↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑#############
  10.     else:
  11.         x = 7 * (i + 1)
  12.         i += 1
  13.         
  14. if flag == 1:
  15.     print ("阶梯数是:",x)
  16. else:
  17.     print("在程序范围内找不到答案")
复制代码


在一对比有点啰嗦了,就有了
  1. x = 7
  2. i = 1
  3. flag = 0

  4. while i <= 100:
  5.     if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6 == 5):
  6.         flag = 1
  7.     else:
  8.         x = 7 * (i + 1)
  9.     i += 1
  10.         
  11. if flag == 1:
  12.     print ("阶梯数是:",x)
  13. else:
  14.     print("在程序范围内找不到答案")
复制代码


结果也是正确的
>>>
阶梯数是: 119
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 17:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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