输入精度e 和实数x,用下列公式求cos x 的近似值,精确到最后一项的绝对值小于e。

2024-12-12 15:27:42
推荐回答(3个)
回答1:

程序运行没报错?,fact函数计算阶乘功能未实现,product没初始,则默认为0,而且i从0开始,计算出的a阶乘永远是0,funcos中fact(i)作为除数了

回答2:

随便写写试试

double funcos(double e, double x)
{
double b, d, n, r, i;
e = fabs(e), x *= x;

r = b = 0, d = n = 1;
while( fabs(i = d / n) > e ) {
r += i;
d *= x, n *= - b * (b+1);
b += 2;
}
return r;
}

回答3:

#include
#include
double funcos(double x,double e)
{
double s=0,t=1,n=0;
while(fabs(t)>e)
{
s=s+t;
t=(t*(-1)*x*x)/((n+1)*(n+2));
n=n+2;
}
return s;
}
main()
{
double x,e,s;
scanf("%lf%lf",&x,&e);
s=funcos(x,e);
printf("cos x=%lf",s);
}