请编写函数fun,其功能是:计算并输出下列多项式的值: 例如,在主函数中从键盘给n输入15,则输出为:s=2.718282。 注意:要求n的值大于1但不大于100。 部分源程序在文件PROGl.C中。 请勿改动主函数mai

admin2020-11-27  32

问题 请编写函数fun,其功能是:计算并输出下列多项式的值:

    例如,在主函数中从键盘给n输入15,则输出为:s=2.718282。
    注意:要求n的值大于1但不大于100。
    部分源程序在文件PROGl.C中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
double fun(int n)
{
}
main()
{  int n;double s;
  printf("Input n:");scanf("%d",
&n);
  s=fun(n);
  printf("s=%f\n",s);
  NONO();
}
NONO()
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。  */
  FILE*rf,*wf;int n,i; double s;
  rf=fopen("in.dat","r");
  wf=fopen("out.dat","w");
  for(i=0;i<10 ; i++)  (
    fscanf(rf,  "%d",  &n);
    s=fun(n);
    fprintf(wf,"%lf\n",s);
  }
  fclose(rf);  fclose(wf);
}

选项

答案double s=1; long t=1; int i; for(i=1 ; i<=n; i++){ t=t*i; /*计算阶乘*/ s+=1./t; /*计算每项的值并累加至变量s中*/ } return s; /*返回多项式的值。/

解析 (1)根据题干中给出的数列,推出每一项是阶乘的倒数,所以首先在循环中求得每一项的阶乘。其中阶乘的计算公式定义为:

    公式分为参数n是1和大于1的两种情况,例如,1的阶乘1!=1;5的阶乘5!=5×4×3×2×1。
    (2)然后求得阶乘分之一的累加和。
转载请注明原文地址:https://kaotiyun.com/show/yp3p777K
0

最新回复(0)