所属年份:2012.3;
请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。
S=1+x+x^2/2!+x^3/3!+…+x^n/n!
例如,当n=10,x=0.3时,函数值为1.349859。
#include<conio.h> #include<stdio.h> #include<math.h> #include<stdlib.h> double fun(double x, int n) { } void main() { FILE *wf; system("CLS"); printf("%f ",fun(0.3,10)); /******************************/ wf=fopen("out.dat","w"); fprintf(wf,"%f",fun(0.3,10)); fclose(wf); /*****************************/ }
【解题思路】
程序定义了变量s1和s,s1表示每项的分母(即各项的阶乘),s存放累加和。循环语句控制累加的次数,在循环体中进行阶乘和累加操作,累加的结果存入s中。此处使用了求乘方函数pow(x,i),其含义是求x的i次方的值。
【参考答案】
double fun(double x, int n) { int i; double s=1.0,s1=1.0; for(i=1;i<=n;i++) {s1=s1*i; /*各项中的阶乘*/ s=s+pow(x,i)/s1; /*按公式求出*/ } return s; }