求助:一个求sin(x)的算法问题
#include "stdafx.h"#include "iostream.h"
void main()
{
double x,sinx,n;
int i;
long y=1;
static int j,fh=1;
cout<<"求sin(x)函数的程序"<<endl;
cout<<"请输入x的值:";
cin>>x;
sinx=x;
n=x;
j=3;
do
{
n=n*(x*x);
fh=fh*(-1);
for(i=j;i>0;i--)
y=y*i;
sinx=sinx+fh*(n/y);
j+=2;
}while((n/y)>1e-7);
cout<<"sin(x)的值为:"<<sinx<<endl;
}
编译正确,但求值是错误的,请问错在哪里了?
----------------解决方案--------------------------------------------------------
没人知道吗?
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
话说, 难道你不知道整数除法的结果是整数么?
1/3 ==0
----------------解决方案--------------------------------------------------------
楼主,你看看你的 sinx=sinx+fh*(n/y);
j+=2;
}while((n/y)>1e-7);
和你声明的类型是不是一致的,需要强制转换。
----------------解决方案--------------------------------------------------------