对于同一个参数,函数的作用不同

时间:2019-03-11 18:29:33

标签: c function types arguments double

这个问题的标题不是很具体,我知道,但这是因为我不知道我的C程序是怎么回事。我试图使用泰勒多项式(具有辐射)来计算sin(x)。首先,我想分享我的代码:

#define TAYLOR_MAX 10

double sin(double x){

    int i;
    double sum=0, fact=1, xi=x;

    for(i=1; i<TAYLOR_MAX; i+=2){
        sum += x / fact;
        x *= xi * xi * (-1);
        fact *= i * (i-1);
    }

    return sum;
}

好的,当我将此函数称为:

sin(1.0)

它运行并产生正确的答案:0.8414709848

但是当我这样打电话时:

double p=1.0;
sin(p)

它给出:-nan

为什么会这样?我该如何解决?在此先感谢。

0 个答案:

没有答案