//定义动态二维数组
i=M-1;
float **SS=new float *[n[i]];
for(d=0;d<n[i];d++)
{SS[d]=new float [n[M-1]];}for(u=0;u<n[M-1];u++)
for(int v=0;v<n[M-1];v++)
{if(u==v)
{SS[u][v]=-f22(net[u][M-1]);}
else
{SS[u][v]=0;}
}
//进入一个循环
i=M-2;
if(i>0)
{
float **SS1=new float *[n[i]];
for(d=0;d<n[i];d++)
SS1[d]=new float [n[M-1]];for (c=0;c<n[i];c++)
for(d=0;d<n[M-1];d++)
{SS1[c][d]=0;}for (c=0;c<n[i];c++)
for(d=0;d<n[M-1];d++)
for(int k=0;k<n[i+1];k++)
{SS1[c][d]=SS1[c][d]+(f11(net[c][i]))*W[t3+k*n[i]+c]*SS[k][d];
}
for(d=0;d<n[i+1];d++)
{delete []SS[d];
SS[d]=NULL;
}
delete []SS;
SS=NULL;
//利用SS1计算
t3=t3-(n[i-1]*n[i]+n[i]);for(c=q*n[M-1];c<(q+1)*n[M-1];c++)
{ int l=0;
while (l<n[i])
{
for(d=(t3+l*n[i-1]);d<(t3+(l+1)*n[i-1]);d++)
{Jacob[c][d]=SS1[l][c-q*n[M-1]]*a[d-(t3+l*n[i-1])][i-1];
}
l++;}
for(d=t3+(n[i-1]*n[i]);d<t3+(n[i-1]*n[i]+n[i]);d++)
{Jacob[c][d]=SS1[d-(t3+n[i-1]*n[i])][c-q*n[M-1]];}
}
//生成动态二维数组
float **SS=new float *[n[i]];
for(d=0;d<n[i];d++)
SS[d]=new float [n[M-1]];for(c=0;c<n[i];c++)
for(d=0;d<n[M-1];d++)
{SS[c][d]=SS1[c][d];}
for(d=0;d<n[i];d++)
{delete []SS1[d];
SS1[d]=NULL;
}
delete []SS1;
SS1=NULL;
i--;
}
程序调试的时候,循环外的SS的值无法传入,这是什么原因?
这个循环能运行,应该怎么做?请高手指点,谢谢!
i=M-1;
float **SS=new float *[n[i]];
for(d=0;d<n[i];d++)
{SS[d]=new float [n[M-1]];}for(u=0;u<n[M-1];u++)
for(int v=0;v<n[M-1];v++)
{if(u==v)
{SS[u][v]=-f22(net[u][M-1]);}
else
{SS[u][v]=0;}
}
//进入一个循环
i=M-2;
if(i>0)
{
float **SS1=new float *[n[i]];
for(d=0;d<n[i];d++)
SS1[d]=new float [n[M-1]];for (c=0;c<n[i];c++)
for(d=0;d<n[M-1];d++)
{SS1[c][d]=0;}for (c=0;c<n[i];c++)
for(d=0;d<n[M-1];d++)
for(int k=0;k<n[i+1];k++)
{SS1[c][d]=SS1[c][d]+(f11(net[c][i]))*W[t3+k*n[i]+c]*SS[k][d];
}
for(d=0;d<n[i+1];d++)
{delete []SS[d];
SS[d]=NULL;
}
delete []SS;
SS=NULL;
//利用SS1计算
t3=t3-(n[i-1]*n[i]+n[i]);for(c=q*n[M-1];c<(q+1)*n[M-1];c++)
{ int l=0;
while (l<n[i])
{
for(d=(t3+l*n[i-1]);d<(t3+(l+1)*n[i-1]);d++)
{Jacob[c][d]=SS1[l][c-q*n[M-1]]*a[d-(t3+l*n[i-1])][i-1];
}
l++;}
for(d=t3+(n[i-1]*n[i]);d<t3+(n[i-1]*n[i]+n[i]);d++)
{Jacob[c][d]=SS1[d-(t3+n[i-1]*n[i])][c-q*n[M-1]];}
}
//生成动态二维数组
float **SS=new float *[n[i]];
for(d=0;d<n[i];d++)
SS[d]=new float [n[M-1]];for(c=0;c<n[i];c++)
for(d=0;d<n[M-1];d++)
{SS[c][d]=SS1[c][d];}
for(d=0;d<n[i];d++)
{delete []SS1[d];
SS1[d]=NULL;
}
delete []SS1;
SS1=NULL;
i--;
}
程序调试的时候,循环外的SS的值无法传入,这是什么原因?
这个循环能运行,应该怎么做?请高手指点,谢谢!
解决方案 »
- cstringarray怎么返回,只能内部使用?
- 如何让access表数据在VC的listbox中显示出来
- 找不到ActivemovieControl Object
- list box 和 list control 哪一个功能更强?
- 大家帮我看下啊,我不知道错在哪(在线等)
- 怎样让CFormView中的控件随着View大小的改变而比例改变?
- 编程资料和各种程序太多了,硬盘放不下了,我想是该买个刻录机,大家给出个主意!
- VC生成的二进制文件中的汉字编码如何解码?
- 我的程序肿么了?添加控件后绘制的图形消失!诡异问题求解答,有图!
- 20分大赠送!!怎样在一个函数中动态改变复选框前的小钩呢????
- 软件有多少天到期或者序列号是怎么实现的
- 如何将批量的限制一个对话框内所有文本框的长度?
//申请动态内存。n[i]是随i变化的数组
float **SS=new float *[n[i]];
for(d=0;d<n[i];d++)
{SS[d]=new float [n[M-1]];}
for(u=0;u<n[M-1];u++)
for(int v=0;v<n[M-1];v++)
{if(u==v)
{SS[u][v]=-f22(net[u][M-1]);}
else
{SS[u][v]=0;}
}
//利用SS进行相关计算(略)
…………………………………
……………………………….
//计算完后
i=M-2;
while(i>0)
{
float **SS1=new float *[n[i]];
for(d=0;d<n[i];d++)
SS1[d]=new float [n[M-1]];
//利用前面得到的SS的值计算SS1,并且作相关计算
…………………………
…………………………
//将前面申请的内存SS释放
for(d=0;d<n[i+1];d++)
{delete []SS[d];
SS[d]=NULL;
}
delete []SS;
SS=NULL;
//在申请一个内存,名字仍为SS,只是大小变了
float **SS=new float *[n[i]];
for(d=0;d<n[i];d++)
SS[d]=new float [n[M-1]];
//蒋前面计算得到的SS1的值赋给SS
for(c=0;c<n[i];c++)
for(d=0;d<n[M-1];d++)
{SS[c][d]=SS1[c][d];}
//将SS1内存释放
for(d=0;d<n[i];d++)
{delete []SS1[d];
SS1[d]=NULL;
}
delete []SS1;
SS1=NULL;
i--;
}
程序调试的时候,循环外的SS的值无法传入,这是什么原因?
这个循环能运行,应该怎么做?请高手指点,谢谢!
float **SS=new float *[n[i]];float **SS=new float *[n[i]];------
在同个函数中..?
变量最好不是使用相同的标识//看代码会头疼
to liuxiuk()
关键是循环中要用到前面那个变量,有没有什么别的解决方法?