之前是出现应用程序错误的对话框,自己试着把程序调来调去改来改去后,现在又出现内存的错误。这到底是什么错误啊,哪位大虾或者有这个经验的帮帮忙。
下面是我写的程序。这是主函数部分。前面的都是复数与矩阵库运算库,即complex类的声明和定义。
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;
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=xn;
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
X[n+m]=X[c];
}
else
{
}
a.re=0;
a.im=20*m^2/n^2;
b=exp(a);
S1=X[n+m]*b; //复数部分运算部分
S=S1*S2;
}
}
S=S+S0;
S0=S;
}
}
S=abs(S);
cout<<S<<endl;
return;
}
}
下面是我写的程序。这是主函数部分。前面的都是复数与矩阵库运算库,即complex类的声明和定义。
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;
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=xn;
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
X[n+m]=X[c];
}
else
{
}
a.re=0;
a.im=20*m^2/n^2;
b=exp(a);
S1=X[n+m]*b; //复数部分运算部分
S=S1*S2;
}
}
S=S+S0;
S0=S;
}
}
S=abs(S);
cout<<S<<endl;
return;
}
}
解决方案 »
- 按钮自绘//继承CWnd与继承CButton有什么不一样的地方?
- 变量声明
- opencv如何设置一张IplImage的透明度,并且把两张半透明的图片合成一张。
- 请问32bit图片色彩量化成8bit有什么方法?速度第一,质量第二。。
- 关于自定义对话框大小的老问题!
- 哪里有可以编辑的FlexGrid,最好单元格能够有多种形式,例如下拉框
- 如何自己写一个dns服务器???
- VC6怎样使用IDL文件?
- 如何在Direct3D里面使用GDI?
- 在vc环境下做图像边缘的提取。
- 为什么没有在指定设备中重绘窗口?
- GIS数据库的问题:supermap的soRecordset mo的 Recordset 的 底层是如何设计的?
complex S2,S1,S,S0,a,b,xn,S10;
这些个变量你先赋个初值看看,会不会你用到的时候还没有值啊
{
c=n+m-64; //判断m+n是否超过64
X[n+m]=X[c];
}
S1=X[n+m]*b; //复数部分运算部分
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;
}
}
}