使用函数求余弦函数的近似值

发布时间:2024年01月02日

本题要求实现一个函数,用下列公式求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;
}

文章来源:https://blog.csdn.net/wx20041102/article/details/135349521
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。