问答题 请编写函数fun,其功能是:计算并输出下列多项式的值。
S=1/(1×2)+1/(2×3)+…+1/(n×(n+1))
例如,当n=10时,函数值为0.909091。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
double fun(int n)
{
}
void main()
{
system("CLS");
printf("%f/n",fun(10));
}
【正确答案】
【答案解析】double fun(int n)
{
int i;
double s=0.0;
for(i=1;i<=n;i++)
s=s+1.0/(i*(i+1)); /*求级数的和*/
return s;
} [解析]
本题要求级数的和,由多项式的形式可知,应使用循环语句实现,循环的通项为1/n(n+1)。本程序首先定义了和变量及循环变量,然后运用一个for语句求出级数的和,最后将和变量s返回。