求解C语言ln1+ln2+....+lnn的程序代码,

要求使用double log(double x)的函数调用。

供你参考……
#include "stdio.h"//
#include "math.h"//
double mylog(int x){
static double m=0.0;
if(x>1) mylog(x-1);
return m+=log(x);
}

void main(void){
int n;
printf("请输入一个正整数!\nn=");
scanf("%d",&n);
printf("%f\n",mylog(n));
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-20
#include "stdio.h"
#include "math.h"
double mylog(int x)
{
double m=0.0;
if (x==1)
m=log(1);
else
m=mylog(x-1)+log(x);
return m;
}

void main(void){
int n;
printf("请输入一个正整数!\nn=");
scanf("%d",&n);
printf("%f\n",mylog(n));
} //ok追问

也就是说这样的log(5)就等于ln5么?

追答

是的。

追问

这是为什么呢?假如真的要求的是log5呢?

追答

log10(5)=ln5/ln10;

本回答被提问者采纳
第2个回答  2012-03-17
下面是函数
double log(double n)
{double i,sum=0;
for(i=1;i<=n;i++) sum=sum+log(i);
return sum;
}追问

也就是说这样的log(5)就等于ln5么?

相似回答