下面是我程序的主函数 经过不断的改正终于可以运行了 但为什么结果只有一个 <-1.#IND,0>呢,应该是64*64个数才对啊
这个 <-1.IND,0>又是什么数据 查询其他方面的信息 好像是逻辑问题吧 但又实在搞不懂原因出在哪里 希望有高手不吝赐教
void main()
{
int n,i,m,c;
double X[64]={8.719486461068,6.8193347340691,1.15486129825143,1.78330276284385,
8.79848218940725,2.32994642114653,1.01136947787404,5.7686494784199,
6.9598355166345,4.47763103667546,8.2501836350581,8.24208318585227,
4.4549258916443,6.92745296939813,5.73527811870724,0.9902178976729,
2.3383330592581,8.8277162663549,1.817526496756,1.18324245791416,
6.83513871006403,8.7194863082151,6.8193347038166,1.15486129691215,
1.78330276714735,8.7984821938859,2.32994642474927,1.0113694806064,
5.7686494804675,6.9598355181114,4.4776310377464,8.25018363583627,
8.242083186418,4.4549258920556,6.92745296969724,5.735278118925,
0.9902178978311,2.3383330593718,8.8277162664352,1.8175264968433,
1.1832424579791,6.83513871011166,8.7194863082499,6.81933470384195,
1.1548612969307,1.7833027671609,8.7984821938958,2.3299464247567,
1.0113694808183,5.7686494805064,6.9598355181254,4.477631037753,
8.25018363584024,8.2420831864207,4.4549258920577,6.9274529696991,
5.73527811892643,0.9902178978326,2.3383330593719,8.8277162665365,
1.81752649686155,1.1832424579887,6.8351387101175,8.7194863082538};
complex S2,S1,S,S0,a,b,xn,S10;
double f;
for(i=0;i <64;i++) //第一个循环 i
{
n=0;
for(n=0;n <64;n++) //第二个循环 n
{
n=0;
for(m=0;m <64;m++) //第三个循环 m
{
S0=0;
if(n==0) //n=0 时 S[i,n]=1/64*sum(n=0,63)X[n]
{
S10=0;
for(n=0;n <64;n++)
{
S1=X[n];
S1=S1+S10;
S10=S1;
}
S=1.0/64*S1;
}
else
{
for(m=0;m <64;m++)
{
if(n+m>63)
{
c=n+m-64; //判断m+n是否超过64
}
else
{ c=m+n;
}
a.re=0;
a.im=0.098125*m*i;
S2=exp(a);
f=m^2/n^2;
b=exp(19.7192*f);
S1=X[c]*b;
S=S1*S2;
}
S=S+S0;
S0=S;
} }
S=abs(S);
cout < <S < <endl;
/* if(l=64)
cout < <"#" < <endl;
else */
return; }
}
}
这个 <-1.IND,0>又是什么数据 查询其他方面的信息 好像是逻辑问题吧 但又实在搞不懂原因出在哪里 希望有高手不吝赐教
void main()
{
int n,i,m,c;
double X[64]={8.719486461068,6.8193347340691,1.15486129825143,1.78330276284385,
8.79848218940725,2.32994642114653,1.01136947787404,5.7686494784199,
6.9598355166345,4.47763103667546,8.2501836350581,8.24208318585227,
4.4549258916443,6.92745296939813,5.73527811870724,0.9902178976729,
2.3383330592581,8.8277162663549,1.817526496756,1.18324245791416,
6.83513871006403,8.7194863082151,6.8193347038166,1.15486129691215,
1.78330276714735,8.7984821938859,2.32994642474927,1.0113694806064,
5.7686494804675,6.9598355181114,4.4776310377464,8.25018363583627,
8.242083186418,4.4549258920556,6.92745296969724,5.735278118925,
0.9902178978311,2.3383330593718,8.8277162664352,1.8175264968433,
1.1832424579791,6.83513871011166,8.7194863082499,6.81933470384195,
1.1548612969307,1.7833027671609,8.7984821938958,2.3299464247567,
1.0113694808183,5.7686494805064,6.9598355181254,4.477631037753,
8.25018363584024,8.2420831864207,4.4549258920577,6.9274529696991,
5.73527811892643,0.9902178978326,2.3383330593719,8.8277162665365,
1.81752649686155,1.1832424579887,6.8351387101175,8.7194863082538};
complex S2,S1,S,S0,a,b,xn,S10;
double f;
for(i=0;i <64;i++) //第一个循环 i
{
n=0;
for(n=0;n <64;n++) //第二个循环 n
{
n=0;
for(m=0;m <64;m++) //第三个循环 m
{
S0=0;
if(n==0) //n=0 时 S[i,n]=1/64*sum(n=0,63)X[n]
{
S10=0;
for(n=0;n <64;n++)
{
S1=X[n];
S1=S1+S10;
S10=S1;
}
S=1.0/64*S1;
}
else
{
for(m=0;m <64;m++)
{
if(n+m>63)
{
c=n+m-64; //判断m+n是否超过64
}
else
{ c=m+n;
}
a.re=0;
a.im=0.098125*m*i;
S2=exp(a);
f=m^2/n^2;
b=exp(19.7192*f);
S1=X[c]*b;
S=S1*S2;
}
S=S+S0;
S0=S;
} }
S=abs(S);
cout < <S < <endl;
/* if(l=64)
cout < <"#" < <endl;
else */
return; }
}
}
void main()
{
int n,i,m,c;
double X[64]={8.719486461068,.....,8.7194863082538};
complex S2,S1,S,S0,a,b,xn,S10;
double f;
for(i=0;i<64;i++) //第一个循环 i
{
n=0;
for(n=0;n<64;n++) //第二个循环 n
{
m=0;
for(m=0;m<64;m++) //第三个循环 m
{
S0=0;
if(n==0) //n=0 时 S[i,n]=1/64*sum(n=0,63)X[n]
{
S10=0;
for(n=0;n<64;n++)
{
S1=X[n];
S1=S1+S10;
S10=S1;
}
n=1;
S=1.0/64*S1;
}
else
{
for(m=0;m<64;m++)
{
if(n+m>63)
{
c=n+m-64; //判断m+n是否超过64
}
else
{ c=m+n;
}
a.re=0;
a.im=0.098125*m*i;
S2=exp(a);
f=m*m/n*n;
b=exp(19.7192*f); //f=36时出错
S1=X[c]*b;
S=S1*S2;
}
}
S=S+S0;
S0=S;
S=abs(S);
cout<<S<<endl;
}
return;
}
}
}
当n=0时可以输出,也就是只输出了第一个数。到n=1时,循环到m=6就出现这样的错误,实在搞不懂。