C语言编程逻辑问题? 输入精度e,用公式求cosx近似值,精确到最后一项绝对值小于e。

如题所述

#include

#include

//
这个函数需要返回
double
类型,不然结果很快就溢出了
double
f(int
n)
{
int
i;
double
m=1.0;
for(i=1;i<=n;i++)
m*=i;
return
m;
}
double
funcos(double
e,double
x)
{
int
i=0,flag=1;
double
cos=0,item=1.0;
while(fabs(item)>=e)
{
item=flag*pow(x,i)/f(i);
cos+=item;
flag=-flag;
//printf("%lf
%lf
%lf\n",pow(x,i),f(i),item);
i=i+2;
}
return
cos;
}
int
main()
{
double
e,x;
printf("e:
");
scanf("%lf",&e);
printf("x:
");
scanf("%lf",&x);
printf("cos(x)=%.3lf,standard
result=%.3lf\n",funcos(e,x),cos(x));
return
0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答