请编写函数fun(),它的功能是计算下列级数和,和值由函数值返回。 S=1-x+x2(上标)/2!-x3(上标)/3!+…+ (-1*x) n(上标)/n! 例如,当n=15,x=0.5时,函数值为0.606531。 注意:部分源程序给出

admin2010-05-05  24

问题 请编写函数fun(),它的功能是计算下列级数和,和值由函数值返回。
   S=1-x+x2(上标)/2!-x3(上标)/3!+…+ (-1*x) n(上标)/n!
   例如,当n=15,x=0.5时,函数值为0.606531。
   注意:部分源程序给出如下。
   请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
   试题程序:
    #include<conio.h>
   #include<stdio.h>
   #include<math.h>
   double fun(double x, int n)
   {
   }
   main()
   {
     clrscr();
     printf("%f ",fun (0.5,15));
   }

选项

答案double fun(double x, int n) { int i,j=1; double s=1.0,s1=1.0; for(i=1;i<=n;i++) { j=-1*j; s1=s1*i /*各项中的阶乘*/ s=s+j*pow(x,i)/s1; /*按公式求出*/ } return s; }

解析 本程序中用s1来表示每项的分母(即各项中的阶乘),要注意本程序中s和s1的初值都为1。注意到本题的公式中是加减相间的,这里要学会使用语句j=-1*j来实现。
转载请注明原文地址:https://jikaoti.com/ti/rKkiFFFM
0

最新回复(0)