在vc++6.0中编译下面的程序时出错了,请问怎么改
NETWORK::ShortestPath(intNODNUM,floatdist[NODMAX][NODMAX])//dist[][]是网络的拓扑邻接矩阵{intpat...
NETWORK::ShortestPath(int NODNUM,float dist[NODMAX][NODMAX]) //dist[][]是网络的拓扑邻接矩阵
{
int path[NODMAX][NODMAX][NODMAX]={0}; //path[][][]记录最短路径
int path0[NODMAX][NODMAX][NODMAX]={0}; //path0[][][]记录次短路径
int i,j,k,x,y,q;
for(i=0;i<NODNUM;i++)
for(j=0;j<NODNUM;j++)
{
cost[i][j]=dist[i][j];
if(cost[i][j]<MAX&&cost[i][j]>0)
{
path[i][j][0]=i+1;
path[i][j][1]=j+1;
}
if(cost[i][j]==0)
{
path[i][j][0]=i+1;
}
}
for(k=0;k<NODNUM;k++)
for(i=0;i<NODNUM;i++)
for(j=0;j<NODNUM;j++)
{
if(cost[i][k]+cost[k][j]<cost[i][j])
{
cost[i][j]=cost[i][k]+cost[k][j];
path[i][j][0]=i+1;
path[i][j][1]=k+1;
path[i][j][2]=j+1;
}
}
for(k=0;k<NODNUM;k++)
for(i=0;i<NODNUM;i++)
for(j=0;j<NODNUM;j++)
{
if(cost[i][k]+cost[k][j]==cost[i][j]&&i!=k&&k!=j)
{
path0[i][j][0]=i+1;
path0[i][j][1]=k+1;
path0[i][j][2]=j+1;
}
}
for(i=0;i<NODNUM;i++)
for(j=0;j<NODNUM;j++)
{
if(path0[i][j][0]==0)
{
for(k=0;k<NODNUM;k++)
path0[i][j][k]=path[i][j][k];
}
}
int m=0;
int hl=0;//最短路径的放大器损耗
int gl=0;//次短路径的放大器损耗
//网络拓扑的链路长度矩阵
int n[3][3]={0,800,0;
800,0,1100;
0,1100,0;
};
for(i=0;i<NODNUM;i++)
{
for(j=0;j<NODNUM;j++)
{
int a,b=i,c;
for(k=0;k<NODNUM;k++)
{
a=b;
realpath[i][j][k]=path[i][j][k]; //realpath[][][]记录最短路径矩阵
c=path[i][j][k];
hl+=(n[a][c]/DIS)*7;
b=c;
}
d[i][j]=TRANSP-hl;//最短路径除去噪声后的能量
for(k=0;k<NODNUM;k++)
{
a=b;
realpath0[i][j][k]=path0[i][j][k]; //realpath0[][][]记录最短路径矩阵
c=path0[i][j][k];
gl+=(n[a][c]/DIS)*7;
b=c;
}
e[i][j]=TRANSP-gl;//次短路径除去噪声后的能量
}
}
}
错误为:
error C2059: syntax error : ';'
error C2143: syntax error : missing ';' before 'for'
error C2143: syntax error : missing ')' before ';'
error C2143: syntax error : missing ';' before '<'
error C2501: 'i' : missing storage-class or type specifiers
error C2143: syntax error : missing ';' before '<'
error C2143: syntax error : missing ';' before '++'
error C2501: 'i' : missing storage-class or type specifiers
error C2086: 'i' : redefinition
error C2143: syntax error : missing ';' before '++'
error C2059: syntax error : ')'
error C2143: syntax error : missing ';' before '{'
error C2447: missing function header (old-style formal list?)
error C2143: syntax error : missing ';' before '}'
error C2143: syntax error : missing ';' before '}'
error C2143: syntax error : missing ';' before '}' 展开
{
int path[NODMAX][NODMAX][NODMAX]={0}; //path[][][]记录最短路径
int path0[NODMAX][NODMAX][NODMAX]={0}; //path0[][][]记录次短路径
int i,j,k,x,y,q;
for(i=0;i<NODNUM;i++)
for(j=0;j<NODNUM;j++)
{
cost[i][j]=dist[i][j];
if(cost[i][j]<MAX&&cost[i][j]>0)
{
path[i][j][0]=i+1;
path[i][j][1]=j+1;
}
if(cost[i][j]==0)
{
path[i][j][0]=i+1;
}
}
for(k=0;k<NODNUM;k++)
for(i=0;i<NODNUM;i++)
for(j=0;j<NODNUM;j++)
{
if(cost[i][k]+cost[k][j]<cost[i][j])
{
cost[i][j]=cost[i][k]+cost[k][j];
path[i][j][0]=i+1;
path[i][j][1]=k+1;
path[i][j][2]=j+1;
}
}
for(k=0;k<NODNUM;k++)
for(i=0;i<NODNUM;i++)
for(j=0;j<NODNUM;j++)
{
if(cost[i][k]+cost[k][j]==cost[i][j]&&i!=k&&k!=j)
{
path0[i][j][0]=i+1;
path0[i][j][1]=k+1;
path0[i][j][2]=j+1;
}
}
for(i=0;i<NODNUM;i++)
for(j=0;j<NODNUM;j++)
{
if(path0[i][j][0]==0)
{
for(k=0;k<NODNUM;k++)
path0[i][j][k]=path[i][j][k];
}
}
int m=0;
int hl=0;//最短路径的放大器损耗
int gl=0;//次短路径的放大器损耗
//网络拓扑的链路长度矩阵
int n[3][3]={0,800,0;
800,0,1100;
0,1100,0;
};
for(i=0;i<NODNUM;i++)
{
for(j=0;j<NODNUM;j++)
{
int a,b=i,c;
for(k=0;k<NODNUM;k++)
{
a=b;
realpath[i][j][k]=path[i][j][k]; //realpath[][][]记录最短路径矩阵
c=path[i][j][k];
hl+=(n[a][c]/DIS)*7;
b=c;
}
d[i][j]=TRANSP-hl;//最短路径除去噪声后的能量
for(k=0;k<NODNUM;k++)
{
a=b;
realpath0[i][j][k]=path0[i][j][k]; //realpath0[][][]记录最短路径矩阵
c=path0[i][j][k];
gl+=(n[a][c]/DIS)*7;
b=c;
}
e[i][j]=TRANSP-gl;//次短路径除去噪声后的能量
}
}
}
错误为:
error C2059: syntax error : ';'
error C2143: syntax error : missing ';' before 'for'
error C2143: syntax error : missing ')' before ';'
error C2143: syntax error : missing ';' before '<'
error C2501: 'i' : missing storage-class or type specifiers
error C2143: syntax error : missing ';' before '<'
error C2143: syntax error : missing ';' before '++'
error C2501: 'i' : missing storage-class or type specifiers
error C2086: 'i' : redefinition
error C2143: syntax error : missing ';' before '++'
error C2059: syntax error : ')'
error C2143: syntax error : missing ';' before '{'
error C2447: missing function header (old-style formal list?)
error C2143: syntax error : missing ';' before '}'
error C2143: syntax error : missing ';' before '}'
error C2143: syntax error : missing ';' before '}' 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询