一道数学有关函数的习题
编写函数fun,其功能是:订算出输出下死多项值的和,直到|Sn-Sn-1|<0.000001为止。Sn=1+0.5*x+0.5(0.5-1)*x2/2!+0.5(0.5-1)(0.5-2)*x3/3!+.0.5(0.5-1)(0.5-2)(0.5-3)*x4/4!+.......0.5(0.5-1).....(0.5-n+1)*xn/n!
下面是我的做的,运行时都是0,请大哥,大姐指教
#include"stdio.h"
#include"math.h"
double fun(double x)
{
double s1,s2=0,i,j,k,n;
s1=1+0.5*x; //s1是前两项的和
for(n=1;n<20;n++)
{
i=1;j=0.5*x;
while(i<n) //先求分母的值,
j=j*(0.5-(i++))*x;
i=0;
while(i<=n) \\分子的值
k=k*(i++);
s2=s1+(j/k);
if(abs(s2-s1)>0.000001)
break;
else
s1=s2;
}
return s2;
}
void main()
{
double x=0.21,s;
s=fun(x);
printf("%ld",s);
}