求C语言大神,利用泰勒公式求sin(x)的值。要求输入x(弧度值),当精度小于10的负5次方时程序

求C语言大神,利用泰勒公式求sin(x)的值。要求输入x(弧度值),当精度小于10的负5次方时程序停止执行。

辛苦打来,望采纳!

#include <stdio.h>
#include <math.h>
int main()
{
    double jiechen(int b);
    int i,a,b,n=4;
    double x,sum;
printf("请输入要计算的角度:");
    while(scanf("%lf",&x)!=EOF)
    {
x/=180.0;
x*=3.1415926535897238462643383279;
        sum=0;
a=1;
i=1;
        do
        {
            b=2*i-1;
            sum=sum+(a*pow(x,b))/jiechen(b);
            a=-a;i++;
        }while(((pow(x,b))/jiechen(b))>=pow(10,-n));
printf("%0.4lf\n",sum);
    }
return 0;
}
double jiechen(int b)
{
    double result;
    int n;
    result=1;
    for(n=1;n<=b;n++)
    result=result*n;
return result;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-11
//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    int i,t;
    double sum,x,tmp,xx;
    printf("Input x(real -360°~+360°)...\n");
    scanf("%lf",&x);
    xx=x,x*=3.1415926535897932/180;printf("%f\n",xx);
    for(tmp=sum=x,i=2;tmp>1.0E-5;i++){
        t=(i<<1)-1;
        sum += i&1 ? tmp*=(x*x/t/(t-1)) : -(tmp*=(x*x/t/(t-1)));
    }
    printf("sin(%g°) = %f\n",xx,sum);
    return 0;
}

本回答被提问者和网友采纳
相似回答