问答题
请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。例如,当n=10,x=0.3时,函数值为1.349859。注意:部分源程序在文件PROG1.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#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);/*******************/}
【正确答案】正确答案: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; }
【答案解析】解析:程序定义了变量s1和s,s1表示每项的分母(即各项的阶乘),s存放累加和。循环语句控制累加的次数,在循环体中进行阶乘和累加操作,累加的结果存入s中。此处使用了求乘方函数pow(x,i),其含义是求x的i次方的值。