double fact(int a){
int i ;
double sum; //返回值类型是double,你这里应该定义成相同的类型才对
sum=1;
for(i=1;i<=a;i++)sum=sum*i;
return sum;
}
double funcos(double e, double x){
double dcos,xiang; //cos是math中的一个函数名,不能与之重复
int a,fuhao;
dcos=0,fuhao=1,a=0;
do{
xiang=pow(x,a)/fact(a);
dcos=xiang*fuhao+dcos;
a=a+2;
fuhao=-fuhao;
}while(xiang>=e) ; //要这样写才能精确
return dcos;
}