利用麦克劳林公式求sinx的值(不能用math.h),这样写对吗?

img


好像算出来的结果不是很准确,也不知道对不对,求教。

#include <stdio.h>
int main(void)
{
    double sum,t,x;
    int i;

    scanf("%lf",&x);

    sum=x;
    i=1;
    t=x;
    while(t>0&&t>=1e-4 || t<0&&-t>=1e-4)
    {
        t=-x*x*t/((2*i+1)*(i*2));
        sum=sum+t;
        i++;
    }
    printf("%f\n",sum);
    return 0;
}