在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/C/ C語言泰勒公式

C語言泰勒公式

求公式sin(x)=x-x3/3!+x5/5!-x7/7!+x9/9!- ...,要求精度不低于1e-5
下面是我的代碼

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main() {
    double x, sum = 0, y=0,sum1, i=1,t,j,u;
    

    scanf("%lf", &x);
    do {
        u = pow(-1, i + 1);
        t = pow(x, 2*i - 1);
        for (j = 1,sum1=1; j <= 2 * i - 1; j++) {
            sum1 = sum1*j;
            
        }
        y = u*t / sum1;
        sum = sum + y;
        i++;

    } while (fabs(y) >= 1e-5);
    printf("%.5lf", sum);
    system("pause");
    return 0;
}

那么問題出現(xiàn)了。。。有時候期望輸出是0.99958 可我的程序輸出是0.99957 為什么會差0.00001啊 難道是四舍五入的問題嗎?如何修改?如果是4舍五入問題那么sum加上0.000005后再%.5lf其他數(shù)據(jù)又不對了。。懇請賜教。。感謝!

回答
編輯回答
話寡

編譯器問題吧。

2017年12月28日 23:35
編輯回答
若相惜

請說清楚你的運行環(huán)境以及什么時候“預(yù)期輸出0.99958”

2018年5月2日 10:57
編輯回答
終相守
printf("%.5f", sum);

input 1.541812559
output 0.99958

2018年6月7日 00:30