关于《带你学C带你飞》 S1E16:拾遗 | 课后测试题
求助各位大佬为什么我模仿答案中的写法,编译器会运算超时没有结果呢
#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;
} 你看你那个循环,肯定是死循环呀 死循环啊,小甲鱼的钱永远比黑夜的多
是不是初值和倍率写错了,因为跳出条件是黑夜比小甲鱼钱多时
可以减小黑夜的初值,和上调黑夜的倍率 a_total += a_total * 0.1应该会一直大于b_total += b_total * 0.05,而且差距会越来越大 qiuyouzhi 发表于 2021-8-3 08:54
你看你那个循环,肯定是死循环呀
{:10_285:}可为什么把循环中的a_total += a_total * 0.1 改为a_total += MONEY * 0.1程序就能运算出来 hymanly 发表于 2021-8-3 09:05
a_total += a_total * 0.1应该会一直大于b_total += b_total * 0.05,而且差距会越来越大
{:10_285:}可为什么把循环中的a_total += a_total * 0.1 改为a_total += MONEY * 0.1程序就能运算出来 大马强 发表于 2021-8-3 09:02
死循环啊,小甲鱼的钱永远比黑夜的多
是不是初值和倍率写错了,因为跳出条件是黑夜比小甲鱼钱多时
可以减 ...
{:10_285:}可为什么把循环中的a_total += a_total * 0.1 改为a_total += MONEY * 0.1程序就能运算出来 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的值一直在变大 理解了,原来是我对于题目:单利息即每年的利息均为投资额 * 利率;复合利息则是每年的本息所得作为第二年的投资额。这个条件没有理解透彻!感谢各位大哥!
页:
[1]