用子函数求cos x=1-x2⼀2!+ x4⼀4! - x6⼀6!+… 请看详情

2025-05-13 19:56:40
推荐回答(1个)
回答(1):

题目所说的“当取8位小数时,结果约为1.86602621”有误。经用WINDOWS计算器验证,程序的计算是正确的。输出的第一行是验证用的,可以删除。
#include
#include
double mycos(double x)
{double y=1,t=1,p;
 p=3.14159265358979*2;
 if(x<0)x=-x;
 while(x>p)x-=p;
 x*=x;
 for(int i=1;t>1e-6;i+=2)
 {t*=x/(i*(i+1));
  y+=i%4==1?-t:t;
 }
 return y;
}
int main()
{double y;
 printf("cos0=%.8lf  cos(Pi)=%.8lf  cos300=%.8lf  cos600=%.8lf\n",mycos(0),mycos(3.1415926),mycos(300),mycos(600));
  //上面一行printf(...);应当删除
 y=mycos(300)+mycos(600);
 printf("%.8lf\n",y*y);    
 return 0;
}