#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){
double mi=1,jiecheng=1,sum=1,wucha=1;
/*输入输出规定为双精度浮点数所以定义double*/
int fuhao=-1,i=2;
while(wucha>e){
/*用while循环判断精度是否满足只要前一个大于e下次循环只要精度小于e即可结束循环*/
mi=mi*pow(x,2);
/*调用数学公式pow实现x^0,x^2~x^n的结构*/
jiecheng=jiecheng*(i-1)*i;
/*求取阶乘*/
sum=sum+fuhao*mi/jiecheng;
/*计算返回值,注意sum已经被赋值为1第一次循环计算的是第一个式子和第二个式子的结果*/
wucha=mi/jiecheng;
/*计算误差*/
fuhao=-fuhao;
/*实现符号的变换*/
i+=2;
/*运用赋值运算符为下次循环实现阶乘的运算创造条件*/
}
return sum;
}
注意本题循环进行的条件判断,和各项的值的变换。