使用函數求余弦函數的近似值(15 分)


本題要求實現一個函數,用下列公式求cos(x)的近似值,精確到最后一項的絕對值小於e:

cos(x)=x0​​/0!x2​​/2!+x4​​/4!x6​​/6!+

函數接口定義:

double funcos( double e, double x );

其中用戶傳入的參數為誤差上限e和自變量x;函數funcos應返回用給定公式計算出來、並且滿足誤差要求的cos(x)的近似值。輸入輸出均在雙精度范圍內。

裁判測試程序樣例:

#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;
}

/* 你的代碼將被嵌在這里 */

輸入樣例:

0.01 -3.14

輸出樣例:

cos(-3.14) = -0.999899


你需要粘貼的代碼

double funcos( double e, double x )
{
    double tmp1=1,tmp2=1,tmp3=1,sum=1;
    int i,k;

    k=-1;
    for(i=2;tmp1>e;i+=2) 
    {    
        tmp2 = tmp2*x*x;        // 分子
        tmp3 = tmp3*i*(i-1);    // 分母
        sum =sum + k*tmp2/tmp3; //
        tmp1 = tmp2/tmp3;        // 誤差上限
        k = -k;                    // 改變符號
    }
    return sum;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM