实验5-10 使用函数求余弦函数的近似值(15 分)
本题要求实现一个函数,用下列公式求cos(x)的近似值,精确到最后一项的绝对值小于e:
$\cos(x)=\frac{x^0}{0!}−\frac{x^2}{2!}+\frac{x^4}{4!}−\frac{x6}{6!}+\cdots$
函数接口定义:
| 1
 | double funcos( double e, double x );
 | 
其中用户传入的参数为误差上限e和自变量x;函数funcos应返回用给定公式计算出来、并且满足误差要求的cos(x)的近似值。输入输出均在双精度范围内。
裁判测试程序样例:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 
 | #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;
 }
 
 
 
 | 
输入样例:
输出样例:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 
 | #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 i=0,m=0,k=1,n=1;
 double sum=0,d;
 do{
 d=pow(x,i)/n;
 sum=sum+k*d;
 k=-k;
 i+=2;
 m=m+2;
 n=n*m*(m-1);
 }
 while(fabs(d)>e);
 return sum;
 }
 
 |