double funcos(double e,double x){
int n,i=2,b=1;
double total=1,a=1,sum=1;
while(1){
sum=1;
for(n=1;n<=i;n++){
sum=sum*n;
} //阶乘。
a=(pow(x,i)*pow(-1,b))/sum; //每一组。
b++; //正负号解决。
if(e>fabs(a)){total+=a;break;} //判断是否小于e。
total+=a;
i+=2;
}
return total;
}
注意事项:sum一定是double。
由于sum的精度不够,导致sum最后乱码。