关于C++中SINX和函数调用问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 23:03:44
编写一个计算sin x的函数,在主函数中输入一个X,调用sin x函数计算并且输出Y的值。
y=sin x =x/1-X3/3!+X5/5!-X7/7!+...+(-1)(n+1)X(2n-1)/(2n-1)!
因为次方不会输,所以表达式可能有问题
应该是 (X/1)减(X的三次方)除以(3的阶乘)加(X的5次方)除以(5的阶乘)减去(X的7次方)除以(7的阶乘)...加上(-1)的(N+1)次方乘以X的(2N-1)次方除以(2N-1)的阶乘

要求 在SINX的函数内,将级数中各项值累加到和变量S中去,知道最后一项绝对值小于0.00001为止.

#include <math.h>
#define LIMVALUE 0.00001

double SinX(double x)
{
......if ( abs(x) <= LIMVALUE )
............return 0.0f;

......double s = 0.0f;
......double a = x;
......int nCount = 2;
......while ( a >= LIMVALUE)
......{
............s += a;
............int nData = 2 * n - 1;
............// 计算阶乘
............double dNValue = double(nData);
............while ( --nData > 0 )
..................dNValue *= double(nData);

............nData = 2 * n - 1;
............a = (-1)*pow(x, nData)/dNValue;

............n++;
......}
......return s;
}