- 论坛徽章:
- 0
|
/
各位大虾 !小弟做了个关于sin的函数 按照书上sin(x)=(x/1!)-x*x*x/3!+x*x*x*x*x/5!+......要求每一项的精度应该在0.000001以上。 该程序哪里有毛病啊?摆脱了各位!
#include<iostream>
using namespace std;
double si(double x)
{
double e,sum=0.0;
int i=1;
int p=1;
double sq=x*x;
e=x;
double f=1.0;
while(f>0.000001)
{ int j=i;
while(j)
{
p*=j;
j--;
}
f=e/p;
if(f>0.000001)
{
cout<<"i="<<i<<endl;
cout<<"e="<<e<<endl;
cout<<"p="<<p<<endl;
cout<<"f="<<f<<endl;
sum=(i%4==1)?sum+f:sum-f;
i+=2;
e=e*sq;
cout<<"sum="<<sum<<endl;
p=1;
}
else
{
f=-1.0;
}
}
return (sum);
}
int main()
{
cout<<"si(5.0)="<<si(5.0)<<endl;
} |
|