本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e:
cos(x)=x0/0!−x2/2!+x4/4!−x6/6!+⋯
本题:需注意x的0次方为1,0的阶乘为1
#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 sum = 0;
     double a = 1.0;
     int i = 0;
     int k = 0;
     int z = 0;
     int q = 1;
     while( 1 )
     {
         if( i == 0 )
         {
             a = 1.0;
             i++;
         }
         else
         {
             a = a*k*(k-1)*1.0;  阶乘的另外形式
         }
         if( pow(x,k)/a < e )
         {
             sum = sum + (pow(x,k)/a) * q;
             break;
         }
         sum = sum + (pow(x,k)/a) * q;
         k = k + 2;
         q = q*(-1);
     }
     return sum;
 }