请编写函数fun(),它的功能是计算:s=(1-In(1)-In(2)-In(3)-…-1n(m))2 s作为函数值返回。 在C语言中可调用log(n)函数求In(n)。log函数的引用说明是double log(double x)。

admin2010-05-05  15

问题 请编写函数fun(),它的功能是计算:s=(1-In(1)-In(2)-In(3)-…-1n(m))2
    s作为函数值返回。
   在C语言中可调用log(n)函数求In(n)。log函数的引用说明是double log(double x)。
   例如,若m的值为15,则fun()函数值为723.570801。
   注意:部分源程序给出如下。
   请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
   试题程序:
   #include <conio.h>
   #include <stdio.h>
   #include <math.h>   
   double fun(int m)
   {
   }
   main()
   {
   clrscr();
   printf("%f\n",fun(15));
   }

选项

答案double fun(int m) {   int i; double s=1.0; for(i=1;i<=m;i++) s=s-log(i); /*计算s=l-In(1)-In(2)-In(3)-…-In(m)*/ return (s*s); /*对s求平方并返回*/ }

解析 首先,题目要求计算1依次减去1到M的对数,可用从1到M的循环,每次循环都减一个数的对数。该题需要注意,log()函数的形式参数应浩如烟海double型变量,用于循环的基数变量为整数,需要进行强制转换。最后在返回的时求平方。
转载请注明原文地址:https://kaotiyun.com/show/wXID777K
0

最新回复(0)