找了好久不知道什么问题,运行结果是-1.#IND00
百度过说是有分母0的情况出现,我分析了好久也没看出来哪里会可能这样
题目如下
答案注释了一些
double funcos( double e, double x ){
double f=1.0; //cosx 当前值,因为第一项不论x给多少衡为1,初始给f的值1
int i=1 ; //i是计数变量,从第二项开始算1
while(fabs(x-f)>e){ //精度不够
int jiecheng=1 , p=2*i; //jiecheng代表阶乘运算后的值 原谅我词穷不会起名字,p是代表阶乘的起点,找规律得出应该是2倍i
while(p!=0){
jiecheng*=p;
p--;
}
f+=pow(-1,i)*pow(x,2*i)/jiecheng; //cosx 累加,每循环一次就新加一项,三部分组成:正负号、分子、分母
i++;
}
return f;
}