国二题目:
编写函数fun,它的功能是计算:
_
s = / ∑ln(i)
/\/
s作为函数值返回。
在C语言中可调用log ( n )函数求ln (n)。log函数的引用说明是: double log(double x)。
例如,若m的值为: 20,fun函数值为: 6.506583。
注意:部分原程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
分析:
1.题目已经告诉让使用log(i)函数完成,因此需要使用
2.累加和后对其进行开方,因此需要使用sqrt()函数完成对总和开方操作。
代码如下:
/*
编写函数fun,它的功能是计算:
_______
s = / ∑Ln(i)
/\/
s作为函数值返回。
在C语言中可调用log ( n )函数求ln (n)。log函数的引用说明是: double log(double x)。
例如,若m的值为: 20,fun函数值为: 6.506583。
注意:部分原程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
*/
#include <math.h>
#include <stdio.h>
/* 完成ln(m)的累加和,并开方 */
double fun( int m )
{
int i;
double temp=0.0;
double res;
for(i=1;i<=m;i++)
{
temp+=log(i); // 累加和
}
res=sqrt(temp); // 完成开方操作
return res;
}
void main()
{
int m;
printf("请输入m的值:");
scanf("%d",&m);
printf("%f\n", fun(m));
}
结果为: