问答题
请编写函数proc(),它的功能是计算下列级数和,和值由函数值返回。
S=1+x+x2/2!+x3/3!+…+xn/n!
例如,当n=20,x=0.2时,函数值为1.221403。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
double proc(double x,int n)
{
}
void main()
{
system("CLS");
printf("%f",proc(0.3,10));
}
【正确答案】
【答案解析】double proc(double x,int n)
{
int i;
double s=1.0,s1=1.0;//s为表示其和的变量,s1为其分母
for(i=1;i<=n;i++)
{ s1=s1*i;//表示分母的阶乘
s=s+pow(x,i)/s1; //表示S=1+x+x
2
/2!
+x
3
/3!+…+x
n
/n!
}
return s; //最后把所得到的和s返回到主函数中
}
[解析] 首先定义两个变量分别存放各项的分母和所有项的和,通过n次循环求出n项的和。最后把所有项的和返回到主函数中。