c语言中的log,ln,lg怎么编写
但是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类型。
参考资料:
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;
}
运行结果如下:
其他对数写个函数就可以
#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);
}
y=log
(double
x);
和
y=log10
(double
x);
q其中log代表数学式中的
ln,而log10
表示数学式中的
lg,至于log5(100)可用换底公式表示为log(100)/log(5)。懂了吗
log5(100),c语言中只定义的两个函数即
y=log
(double
x);和y=log10
(double
x);q其中log代表数学式中的
ln,而log10
表示数学式中的
lg,至于log5(100)可用换底公式表示为log(100)/log(5)。懂了吗