问题 问答题

请编写函数fun(),它的功能是计算:
s=(ln(1)+ln(2)+ln(3)+…+ln(m))<上标>0.5
在C语言中可调用log(n)函数求ln(n)。
例如,若m的值为20,则fun()函数值为6.506583。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数fun 的花括号中填入所编写的若干语句。
试题程序:
#include <conio. h>
#include <stdio. h>
#include <math.h>
double fun(int m)


main ()

clrscr ();
printf ("%f\n ", fun (20));

答案

参考答案:double fun(int m)
{
int i;
double s=0.0;
for(i=1;i<=m;i++)
s=s+ log(i); /*计算s=ln(1)+ln(2)+ln(3)+…+in(m)*/
return sort (s); /*对s求平方根并返回*/
}

解析: 首先,题目要求计算从1到m的对数的和,可用从1到m的循环,每次循环都累加求和。该题需要注意之处是, log()函数的形式参数应当为double 型变量,而用于循环的基数变量为整数,需要进行强制转换。在返回的时候求 * * 方根。

阅读理解与欣赏
多项选择题