那为什么这个程序,得到的a1是0?程序是求sinx近似值的,
图片附件: 游客没有浏览图片的权限,请
登录 或
注册
#include<stdio.h>
#include<conio.h>
#include<math.h>
main()
{ double cf(double x,int i);
int jc(int i);
double x,a1,sum=0,num=1;
int sign=-1,i,a2;
scanf("%lf",&x);
for(i=1;fabs(num)>1e-8;i+=2)
{sign=sign*(-1);
a1=cf(x,i);
a2=jc(i);
num=sign*a1/a2;
sum=sum+num;
}
printf("%.8lf %.8lf %.8lf %d\n",sum,num,a1,a2);
getch();
return 0;
}
double cf(double x,int i)
{ int j;
double y;
for(j=1,y=1;j<=i;j++)
{y=y*x;
}
return y;
}
int jc(int i)
{int j,sum=1;
for(j=1;j<=i;j++)
{sum=sum*j;
}
return sum;
}
[此贴子已经被作者于2015-12-7 20:24编辑过]