活动设计题
请编写函数proc(),其功能是:计算并输出下列多项式的值。
S=(1+1/2)+(1/3+1/4)+…+(1/(2n-1)+1/2n)
例如,若输入10,则输出为S=3.597740。
n的值要求大于1,但不大于100。
注意:部分源程序如下。
请勿改动函数main()和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
double proc(int n)
{
}
void main()
{
int n;
double s;
printf('\nInput n:');
scanf('%d',&n);
s=proc(n);
printf('\ns=%f\n',s);
}
【正确答案】double proc(int n) { int i; double s=0.0; //s是和的变量,因此其初始值为0 for(i=1;i<=n;i++)//从第1项到第n项 s=s+(1.0/(2*i-1)+1.0/(2*i));//根据题目的要求把分子、分母转化为符合题意的类型 return s;//最后把其值返回到主函数 }
【答案解析】首先,定义一个变量来存放表达式的和,根据题目中提供的多项式,通过n次循环来求出n项的和;最后,把所求得的和返回到主函数中。