如何用C语言编写一个对数运算

如何用C语言编写一个对数运算,第1张

用库函数mathh 这里面的log就是数学里面ln(底数为e的那个家伙)的意思。如下代码例子

#include<stdioh>
#include<mathh>
main()
{
double k;
k=log(271828);
printf(" %f ",k);
k=log(8)/log(2);
printf(" %f ",k);
}


第一k是ln(e)的意思,e约为271828,屏幕上打印出值为0999999,
第二k是求底数为2真数为8的值log2(8)=ln(8) /ln(2) (这个数学转化式我不用多说),打印出来的结果是3000000

c++中不可以直接使用对数函数,需要引入头文件:mathh,使用C/C++语言中的数学函数log()函数来表示。

自然对数以常数e为底数的对数。记作lnN(N>0)。在物理学,生物学等自然科学中有重要的意义。一般表示方法为lnx。数学中也常见以logx表示自然对数。

log是C语言中的数学函数,发明者是苏格兰的纳皮尔,可以计算以e 为底的对数值。原型:double log (double x); 功能:计算以e 为底的对数值。

扩展资料:

相关的指数与对数函数:

1、double frexp(double value,int exp);这是一个将value值拆分成小数部分f和(以2为底的)指数部分exp,并返回小数部分f,即f2^exp。其中f取值在05~10范围或者0。

2、double modf(double value,double iptr);拆分value值,返回它的小数部分,iptr指向整数部分。

3、double log (double);  以e为底的对数

4、double log10 (double); 以10为底的对数

5、double pow(double x,double y); 计算x的y次幂

6、float powf(float x,float y); 功能与pow一致,只是输入与输出皆为单精度浮点数

7、double exp (double); 求取自然数e的幂

8、double sqrt (double); 开平方根

参考资料来源:百度百科-自然对数

参考资料来源:百度百科-log

参考资料来源:百度百科-mathh

C语言中没有以任意为底数的对数函数,所以log5是没有的。所以可以用logx(y)=log(y)/log(x)来代替,修改代码如下
#include"stdioh"
#include"mathh"
void main()
{
double a,b;
a=2314-1;
b=log(sqrt(a))/log(5);
printf("%f\n",b);
getchar();
}

C语言中没有以a为底b为真数的对数函数;只有以常用对数10为底的对数或自然对数e为底的对数(即Ig、In),此时就要用到换底公式来换成以e或者10为底的对数来表示出以a为底b为真数的对数表达式,从而来处理某些实际问题。
我帮你查函数表了,double就已经足够了,我们换底为10,调用函数double
result=log10(x),然后注意除法,小心分母的数据类型,必须为double,否则很有可能出错,这就是我的建议祝你好运~编程愉快~~

换底公式是:
㏒c
b
㏒a
b=━━━━
㏒c
b
c的含义是随便找一个数,但要符合底数的限制条件,即c>0且c≠1。
c若取10,就是常用对数lg,或c取题中的某个底数。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13388099.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-26
下一篇 2023-07-26

发表评论

登录后才能评论

评论列表(0条)

保存