作业帮 > 综合 > 作业

c语言中对数函数的表示.

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/06/23 18:16:55
c语言中对数函数的表示.
#include
#include
int main()
{
int d=300000,p=6000;
float r=0.01,m,n,g;
m=log10(p)-log10(p-d*r); /*有问题,对数函数的表示方法*/
n=log10(1+r);
g=m/n;
printf("%7.2f",g);
getch();
}
c语言中对数函数的表示.
没有问题,输出m=0.301030;n=0.004321;g=69.66
编译时会提示warning,主要原因有
1、int d=300000 过大,用长整形;
2、log()和log10()函数均是double型,double转成float会有截断误差,将float r=0.01,m,n,g;
中的float改成double就不会有warning了;
3、getch()函数未声明,头文件加入#include,就不会有warning了.
但warning不会影响运行结果.
c 里直接提供的是 以 e 为底的自然对数 log ,和 以 10 为底的常用对数 log10
其他对数写个函数就可以
#include
#include
double loga(double n, double base);
int main (void)
{
double a, b, c;
a = log(exp(1));
b = log10(10);
c = loga(100, 5);
printf("%lf %lf %lf", a, b, c);
}
double loga(double n, double base)
{ return log(n) / log(base);}