问答题 编写函数fun,它的功能是计算下列级数和,和值由函数值返回。 例如,当n= 10,x=0.3时,函数值为1.349859。 注意:部分源程序在文件PROG1.C文件中。 请勿改动主函数mam和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include double fun (double x , int n) { } main() {void NONO (); printf("%f/n", fun(0.3,10)); NONO(); } void NONO () {/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/ FILE *fp,*wf ; int i,n ; double S,X ; fp=fopen ("in.dat","r"); wf = fopen ("out.dat","w"); for(i=0 ; i < 10 ; i++) { fscanf (fp, "%lf,%d", &x, &n); s = fun (x, n); fprintf (wf, "%f/n", s); } fclose( fp); fclose (wf); }
【正确答案】正确答案:1 double s:1.0, y=x ; 2 int i ; 3 long k=1; 4 for(i = 1 ; i <= n ; i++) { 5 k=k* i ; 6 s+=y/ k ; 7 y* =X; 8 } 9 return s;
【答案解析】解析:该程序功能是计算并输出多项式值。根据题干中给出的数列,首先推出每一项的表达式,然后再对多项式进行累加求和。 (1)根据题干中给出的数列,推出每一项分子是在前一项的基础上乘以x,分母是每一项的阶乘,它可以在前一项的基础上乘以当前项的项数,即第n项是n。 (2)在循环中求得每一项,然后对其进行累加求和。