鱼C论坛

 找回密码
 立即注册
查看: 918|回复: 8

[已解决]关于《带你学C带你飞》 S1E16:拾遗 | 课后测试题

[复制链接]
发表于 2021-8-3 00:10:01 | 显示全部楼层 |阅读模式

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

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

x
求助各位大佬
为什么我模仿答案中的写法,编译器会运算超时没有结果呢

#include <stdio.h>
       
#define MONEY 10000
       
int main()
{
                        double a_total = MONEY, b_total = MONEY;
                        int count = 0;

                        do
                        {
                                a_total += a_total * 0.1;
                                b_total += b_total * 0.05;
                                count++;
                        }while(a_total >= b_total);

                        printf("%d年之后,黑夜的总投资额超越了小甲鱼!\n", count);
                        printf("小甲鱼的总投资为:%.2f\n", a_total);
                        printf("黑夜的总投资为:%.2f\n", b_total);

                        return 0;
}
最佳答案
2021-8-4 14:42:04
zjohannes 发表于 2021-8-4 14:35
可为什么把循环中的a_total += a_total * 0.1 改为a_total += MONEY * 0.1程序就能运算出来

因为money是固定值,所以a_total+=MONEY*0.1的结果一直保持不变,但b_total+=b+total*0.05的值一直在变大
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-3 08:54:24 | 显示全部楼层
你看你那个循环,肯定是死循环呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-3 09:02:49 | 显示全部楼层
死循环啊,小甲鱼的钱永远比黑夜的多
是不是初值和倍率写错了,因为跳出条件是黑夜比小甲鱼钱多时
可以减小黑夜的初值,和上调黑夜的倍率
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-3 09:05:24 | 显示全部楼层
a_total += a_total * 0.1  应该会一直大于  b_total += b_total * 0.05,而且差距会越来越大
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-4 14:34:50 | 显示全部楼层
qiuyouzhi 发表于 2021-8-3 08:54
你看你那个循环,肯定是死循环呀

可为什么把循环中的a_total += a_total * 0.1 改为a_total += MONEY * 0.1程序就能运算出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-4 14:35:24 | 显示全部楼层
hymanly 发表于 2021-8-3 09:05
a_total += a_total * 0.1  应该会一直大于  b_total += b_total * 0.05,而且差距会越来越大

可为什么把循环中的a_total += a_total * 0.1 改为a_total += MONEY * 0.1程序就能运算出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-4 14:36:14 | 显示全部楼层
大马强 发表于 2021-8-3 09:02
死循环啊,小甲鱼的钱永远比黑夜的多
是不是初值和倍率写错了,因为跳出条件是黑夜比小甲鱼钱多时
可以减 ...

可为什么把循环中的a_total += a_total * 0.1 改为a_total += MONEY * 0.1程序就能运算出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-4 14:42:04 | 显示全部楼层    本楼为最佳答案   
zjohannes 发表于 2021-8-4 14:35
可为什么把循环中的a_total += a_total * 0.1 改为a_total += MONEY * 0.1程序就能运算出来

因为money是固定值,所以a_total+=MONEY*0.1的结果一直保持不变,但b_total+=b+total*0.05的值一直在变大
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-4 14:53:52 | 显示全部楼层
理解了,原来是我对于题目:单利息即每年的利息均为投资额 * 利率;复合利息则是每年的本息所得作为第二年的投资额。这个条件没有理解透彻!感谢各位大哥!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 11:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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