问答题
编写函数fun(),它的功能是:计算和输出下列级数的和。
S=1/(1×2)+1/(2×3)+…+1/(n×(n+1))
例如,当n=10时,函数值为0.909091。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序;
#include<conio.h>
#include<stdio.h>
double fun(int n)
{
}
main ( )
{
clrscr();
printf("%f/n",fun(10));
}
【正确答案】
【答案解析】double fun(int n)
{
int i;
double s=0.0;
for (i=l; i<=n; i++)
s=s+l.0/(i* (i+l)); /*求级数的和*/
return s;
}
[解析] 解决数学序列的问题,我们的思路依然是“数学先行”,即先看清楚题目的数学逻辑,然后再根据C语言来“翻译”出来。本题中,每一项的值都是n*(n+1)的倒数。当输入n时,从1开始循环,注意,此处for(i=1;i