English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

題目是說用sin(x)=Σ(-1)^(n+1) * x^(2n-1) / (2n-1)!

以下是我寫的程式
m代表Σ要算到幾階
x是輸入角度
c++編譯成功
但是輸入階數跟角度後
就停住 不會出現結果....
希望有高手能幫我找出其中的問題
也許對大家來說這很簡單...><

#include
using namespace std;
int main()
{
float x,m,n,d,sin;
cout<<"輸入階數";
cin>>m;
cout<<"輸入角度";
cin>>x;
d=x*3.14159/180;
sin=0.0;
for(n=1;n<=m;n=n+1)
{
float a=1;
float b=1;
float c=1;
for(n=1;n<=n+1;n=n+1)
{
a=a*(-1);
}
for(n=1;n<=2*n-1;n=n+1)
{
b=b*d
}
for(n=1;n<=2*n-1;n=n+1)
{
c=c*(c+1)
}
sin=sin+(a*b/c);
}
cout<<"sin(x)="< system("pause");
return 0;
}

2007-10-26 10:59:58 · 2 個解答 · 發問者 93303073 1 in 電腦與網際網路 程式設計

2 個解答

#include
#include
#include
#include
#define pi acos(-1.0)
using namespace std;
unsigned int factorial(int n)
{
unsigned int value=1;
for(int i=0;i value*=(i+1);
}
return value;
}
double one_shoot(int n, double x)
{
return pow(-1.0,n)*pow(x,2*n+1)/factorial(2*n+1);
}
int main(int argc, char** argv){
//=====START=====//
int n;
double x,value=0,theta;
cout<<"Sine of Taylor series"< cout<<"Input X(degree): ",cin>>theta;
x=theta*pi/180;
cout<<"Input N: ",cin>>n;
for(int i=0;i value+=one_shoot(i,x);
}
cout<<"sin("< //=====END=====//
system("PAUSE");
return 0;
}

2007-10-26 22:11:32 補充:
你寫的公式恐怕有錯誤……

2007-10-26 18:10:52 · answer #1 · answered by Big_John-tw 7 · 0 0

確定是
sin(x) = x - (1/3!)x3 + (1/5!)x5 - (1/7!)x7+ ...
你們對一下

2007-10-26 20:33:34 · answer #2 · answered by ? 7 · 0 0

fedest.com, questions and answers