c语言中的log,ln,lg怎么编写

假设log中底数是5。另一个假设是100.就写成log5(100).

但是ln100,和lg100要怎么编写?

PS:ln是不是以e为底数?lg的底数是不是10?

首先在C语言中要用到指数、对数的相关公式,需要引入math.h。另外ln是以e为底数,lg是以10为底数。

代码如下:

#include<stdio.h>

#include<math.h>

void main()

{

double exponent, base;

exponent = 3.14;

printf("ln(%f) = %.2f\n", exponent, log(exponent));//以e为底数的对数

exponent = 100;

printf("lg(%.f) = %.2f\n", exponent, log10(exponent));//以10为底数的对数

base = 5, exponent = 100;

printf("log_%.f(%.f) = %.2f\n", base, exponent, log(exponent)/log(base));//换底公式

return 0;

}

在求log_5(100)时需要用到“换底公式”:log_5(100) = ln(100)/ln(5)。

扩展资料

math.h文件中包含的函数主要分为以下几类:

1、三角函数、反三角函数、双曲三角函数。

2、指数、对数。

3、取整、绝对值。

4、标准化浮点数。

涉及参数类型为double类型。

参考资料:

百度百科——换底公式

百度百科——math.h

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-05-20

c语言中

函数 log(x) 表示是以e为底的自然对数,即 ln(x)

函数 log10(x) 以10为底的对数,即 lg(x)

以其它数为底的对数用换底公式来表示

函数 log() 和 log10() 包含在头文件<math.h>中

代码如下:

#include<stdio.h>
#include<math.h>
double logab(double a,double b)
{
return log(b)/log(a);
}
int main()
{
double a,b;//计算logab 
scanf("%lf %lf",&a,&b);
printf("loga(b)=%lf\n",logab(a,b));
double x;//计算 ln(x)和lg(x)
scanf("%lf",&x);
printf("ln(x)=%lf\nlog10(x)=%lf",log(x),log10(x)); 
return 0;
}

运行结果如下:

第2个回答  2009-06-04
c 里直接提供的是 以 e 为底的自然对数 log ,和 以 10 为底的常用对数 log10
其他对数写个函数就可以

#include <stdio.h>
#include <math.h>

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);
}本回答被提问者采纳
第3个回答  2019-12-16
c语言中和数学中的表达式不一样,c语言中没有你假设的数学式 log5(100),c语言中只定义的两个函数即
y=log
(double
x);

y=log10
(double
x);
q其中log代表数学式中的
ln,而log10
表示数学式中的
lg,至于log5(100)可用换底公式表示为log(100)/log(5)。懂了吗
第4个回答  2019-08-03
c语言中和数学中的表达式不一样,c语言中没有你假设的数学式
log5(100),c语言中只定义的两个函数即
y=log
(double
x);和y=log10
(double
x);q其中log代表数学式中的
ln,而log10
表示数学式中的
lg,至于log5(100)可用换底公式表示为log(100)/log(5)。懂了吗
相似回答