#include <iostream.h>
#include <stdlib.h>
#include <cmath>
float sinx(float);
int main()
{
float i=1.0;
double degree, aseries, x;
cout<<"Input a number in degrees.\n";
cin>>degree;
aseries=sinx(degree);
cout<<"when degree="<<degree<<", sin(x)="<<aseries<<endl;
system("PAUSE");
return 0;
}
float sinx(float y)
{
float i=1.0, sgn=1;
double aseries, aterm, denum=1.0, p_denum, num, x;
x=y*(3.14159/180.0);
aseries=x;
do
{
sgn*=-1;
i=i+2.0;
denum*=i*(i-1);
num=pow(x, i);
aterm=num/denum;
aseries=aseries+sgn*aterm;
}while (aterm>0.0001);
return aseries;
}
我从写了一遍, 基本运行可以了, 但是比方说我算90度, sin(x)=1, 我想要
sin(x)=0.999999683, 谁可以在里面加点东西让他变精确点阿