项目场景:
B站鹏哥23版C语言P36第二题
BV1Vm4y1r7jY
问题描述
嵌套for循环结果错误:整体进行三轮循环,在第二轮的时候ret为2,并且传送给第三轮,导致第三轮ret得不到6而是12
![](https://i-blog.csdnimg.cn/blog_migrate/603910b85263334a11af14ab233cdf9a.png)
原因分析:
对于嵌套中没有注意ret上一轮循环的保留值
没有用电脑的思维去运行,要学会用软件一步步调试或者自己画图去模拟运行
解决方案:
在外层循环重置ret的数值,保证每次进去阶乘循环(第二层循环)的ret都为1
![](https://i-blog.csdnimg.cn/blog_migrate/8b2a1e6b425b24bd0338154c13a25762.png)
阶乘和有规律可言,把程序变得更简洁,换为一个for循环
所以还是要多积累经验,注意观察规律
![](https://i-blog.csdnimg.cn/blog_migrate/4141596496b46c118220363c78ed066a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/59cf344400a72244dd3a11d2fa58dea3.png)