阿亮不减肥 发表于 2022-9-6 10:31:22

课后习题求助

#include <stdio.h>
//求出结果,和课后习有误差,请问是哪里有问题?
int main() {   
        float h, x, sum, sum1, L, L2;
        int i;
        h = 10000;
        x = 10000;
        sum1 = 10000;
        L = 0.1;
        L2 = 0.05;
        for (i = 1;; i++) {
                sum = h * (1 + i * L);
                sum1 = sum1 * (1 + L2);
                if (sum1 > sum) {
                        printf("%d年后,黑夜的投资额超过小甲鱼!\n\
                             小甲鱼的投资额是: % .2f\n\
                             黑夜的投资额是: % .2f\n", i, sum, sum1);
                        break;
                } else {
                        continue;
                }

        }
        return 0;
}

wp231957 发表于 2022-9-6 10:45:07

查一点点正常,没听说浮点数有误差吗

做最好的自己520 发表于 2022-9-6 17:08:37

亲 ~,建议把float(单精度)改为double(双精度)就OK啦
精度更准确

阿亮不减肥 发表于 2022-9-6 17:26:16

做最好的自己520 发表于 2022-9-6 17:08
亲 ~,建议把float(单精度)改为double(双精度)就OK啦
精度更准确

已解决;thx
页: [1]
查看完整版本: 课后习题求助