输入精度e 和实数x,用下列公式求cos x 的近似值,精确到最后一项的绝对值小于e。要求定义和调用函数funcos(e,x)求余弦函数的近似值。

问题描述:

输入精度e 和实数x,用下列公式求cos x 的近似值,精确到最后一项的绝对值小于e。要求定义和调用函数funcos(e,x)求余弦函数的近似值。
#include
#include
int main(void)
{
int x;
double e;
double funcos(double e,int x);
printf("e:");
scanf("%lf",&e);
printf("x:");
scanf("%d",&x);
printf("cos(x)=%.3f\n",funcos(e,x));\x05
return 0;
}
double funcos(double e,int x)
{
int flag,i,n;
double item,sum;
double fact(int n);
flag=1;
n=0;
i=0;
sum=0;
while(fabs(sum)>=e)
{
item=flag*pow(x,i)*1.0/fact(n);
sum=sum+item;
flag=-flag;
i=i+2;
n=n+2;
}
return sum;
}
\x05
double fact(int n)
{
double product;
int i;
product=1;
if(n==0)
product=1; / * 不能用以下的算法吧?*/
else
{
for(i=1;i

将while(fabs(sum)>=e){item=flag*pow(x,i)*1.0/fact(n);sum=sum+item;flag=-flag;i=i+2;n=n+2;}改为: do{item=1.0*flag*pow(x,i)/fact(n);sum=sum+item;flag=-flag;i=i+2;n=n+2;}while(fabs...