重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
错误有这样几个:
成都创新互联专注于眉县企业网站建设,自适应网站建设,商城系统网站开发。眉县网站建设公司,为眉县等地区提供建站服务。全流程按需网站制作,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务
1. i=(int)log((double)n)/log((double)2)+1;
强制类型转换格式:(type)data 而不是:type(data) 如:(double)n, 非double(n)\
2. x是一个临时变量,当离开FindTree后,其内容就是不可预测的了,所以返回其地址对调用者没有意义。
3. C2198错误可能是由1引起的。
int main()
{
double a,b;
a=10;
b=log(a);
printf("%lf\n",b);
b=log10(a);
printf("%lf\n",b);
return 0;
}
在8086-FPU 芯片中是一样的:
log:
fldln2 ;只是这句不同
sub esp, 8
fld qword ptr [4080B0] ; ds:[004080B0]=10.00000000000000
fyl2x
fstp qword ptr [esp]
log10:
fldlg2 ;只是这句不同
add esp, 4
fld qword ptr [4080B0] ; ds:[004080B0]=10.00000000000000
fyl2x
fstp qword ptr [esp]
看图片:
x的自然对数用log(x)表示
常用对数用log10(x)表示
#includestdio.h
#includemath.h
int main()
{int i;
for(i=1;i=10;i++)
printf("log10(%d)=%lf\n",i,log10(i));
return 0;
}
1、C语言中,有两个log函数,分别为log10和log函数,具体用法如下:
2、函数名: log10
功 能: 对数函数log,以10为底
用 法: double log10(double x);
程序示例:
#include math.h
#include stdio.hint main(void)
{
double result;
double x = 800.6872;
result = log10(x);
printf("The common log of %lf is %lf\n", x, result);
return 0;
}
3、函数名: log
功 能: 对数函数log,以e(2.71828)为底
用 法: double log(double x);
程序示例:
#include math.h
#include stdio.hint main(void)
{
double result;
double x = 800.6872;
result = log(x);
printf("The common log of %lf is %lf\n", x, result);
return 0;
}
C语言中没有以a为底b为真数的对数函数;只有以常用对数10为底的对数或自然对数e为底的对数(即Ig、In),此时就要用到换底公式来换成以e或者10为底的对数来表示出以a为底b为真数的对数表达式,从而来处理某些实际问题。
我帮你查函数表了,double就已经足够了,我们换底为10,调用函数double
result=log10(x),然后注意除法,小心分母的数据类型,必须为double,否则很有可能出错,这就是我的建议祝你好运~编程愉快~~