不知名的网友.ᥫᩣ༠ 2023-10-22 12:03 采纳率: 95.7%
浏览 6
已结题

自己想的五猴分桃问题

img


这个代码为啥跑不起来呀,测试了一下,for循环没循环几下就退出循环结束了,想知道为什么呀,另外代码我贴出来了,帮忙看一下for循环哪里有问题

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-22 14:26
    关注

    【以下回答由 GPT 生成】

    问题出在循环内的 peaches = (peaches - 1) * 5 / 4 这一行。这行代码的目的是将剩余的桃子数减去一分给猴子,并按照一定的规则重新计算剩余的桃子数。但是这行代码在循环内,每次循环都会重新计算 peaches 的值,导致最终循环结束时 peaches 的值并不是每只猴子最终能分到的桃子数。

    解决这个问题的方法是将 peaches 的计算提到循环外面,并且将循环的次数改为猴子的数量减一。具体的代码如下所示:

    // 五猴分桃问题
    #include <stdio.h>
    
    int main() {
        int monkeys = 5;
        int peaches = 1;
    
        for (int i = 1; i < monkeys; i++) {
            peaches = (peaches - 1) * 5 / 4;
        }
    
        printf("每只猴子最初至少能分到%d个桃子\n", peaches);
    
        return 0;
    }
    

    这样修改之后,循环的次数就是猴子的数量减一,而每次循环更新的是同一个 peaches 变量的值。最后输出的结果就是每只猴子最初至少能分到的桃子数。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月30日
  • 已采纳回答 10月22日
  • 创建了问题 10月22日