#include <stdio.h>
#include <math.h>
double funcos( double e, double x );
int main()
{
double e, x;
scanf("%lf %lf", &e, &x);
printf("cos(%.2f) = %.6f\n", x, funcos(e, x));
return 0;
}
/*
你的代码将被嵌在这里
*/
double funcos( double e, double x )
{
int i,j;
double pwr;
int factorial = 1;
double cos = 0;
double last_cos = 0;
for (i=0;;i+=2)
{
printf("ok");
factorial = 1;
for (j=1;j<i;++j)
{
factorial*=j;
}
pwr = pow(x,i);
last_cos = pwr/factorial;
if((last_cos>0 && last_cos<e) || (last_cos<0 && -last_cos<e))
cos += last_cos;
else
break;
}
return cos;
}

```**这道题这样写哪里不对,结果总是0,求原因**********
double funcos( double e, double x )
{
int i,j;
double pwr;
int factorial = 1;
double cos = 0;
double last_cos = 0;
for (i=0;;i+=2)
{
factorial = 1;
//阶乘到i
for (j=1;j<=i;++j)
{
factorial*=j;
}
pwr = pow(x,i);
last_cos = pwr/factorial;
cos += last_cos;
//最后一项小于e就停止计算
if((last_cos>0 && last_cos<e) || (last_cos<0 && -last_cos<e))
break;
}
return cos;
}