华文杉 发表于 2021-5-25 08:45:32

代码结果不一样

本帖最后由 华文杉 于 2021-5-25 08:47 编辑

我在求银行利率问题自己编写一段代码:习题 3.3 购房从银行贷了一笔款d, 准备每月还款额为p, 月利率为r, 计算多少月能还清。设d为300000元,p为6000元,r为1%。对求得的月份取小数点后一位,对第2位按四舍五入处理。
#include"stdio.h"
#include"math.h"
int main()
{
    double r = 0.01 , m ;
    int d = 3000000,p = 6000;
    m = log(p/(p-(d*r)) / log(1+r));
    printf("能还清的月数为:%f\n",m);
    return 0;
}
这是CSDN上的代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int d = 300000, p = 6000;    //定义贷款总额,每月还贷数
    double r = 0.01, m, x, y;    //定义利率,月份
    x = p / (p - d * r);
    y = 1 + r;
    m = log10(x) / log10(y);   //计算公式
    printf("m=%.2lf\n", m);
    system("pause");
    return 0;
}


前者结果是5.30,后者是60多,求问:为什么结果不一样?库函数包含的内容在哪里能够找得到?
感谢鱼油们解答!

王之叹息 发表于 2021-5-25 09:35:32

在写头文件的那行点右键就会出现一个菜单,有个选项是打开头文件的,不过估计看不懂,想知道里面包含哪些函数直接在百度上搜具体的头文件名就行了,至于程序问题还不知道,身边没电脑,手机太不方便了{:10_256:}

tian1234 发表于 2021-5-25 09:43:15

一个是log10,一个是log,怎么可能一样啊

lei1996 发表于 2021-5-25 09:52:49

m = log(p/(p-(d*r)) / log(1+r));
m = log10(x) / log10(y);
表达式不一样啊   你上面括号仔细看看

王之叹息 发表于 2021-5-25 10:17:30

第七行m = log(p/(p-(d*r)) / log(1+r));
改为m = log(p/(p-(d*r))) / log(1+r);问题就解决了
还有,你贴代码的时候其中的d的值多了个0;我说我怎么刹车踩断了都没得出5.30的答案
最后满意的话给个最佳啊亲{:5_92:}{:5_92:}
页: [1]
查看完整版本: 代码结果不一样