1. 程式人生 > >我的floyd演算法有什麼問題啊?看了好多次,可以編譯,就是執行有問題。

我的floyd演算法有什麼問題啊?看了好多次,可以編譯,就是執行有問題。

void hfloyd(h &a)//floyd實現兩點最短路徑利用友元函式實現
{
int i,j,k;
for(i=1;i<=a.adnum;i++)//初始化路徑陣列
for(j=1;j<=a.adnum;j++)
        {
a.dist[i][j]=a.arc[i][j];
if(a.dist[i][j]<50000)
a.path[i][j]=a.ad[i]+a.ad[j];
   else a.path[i][j]=" ";
}
    for(k=1;k<=a.adnum;k++)  //依次加入每個頂點
for(i=1;i<=a.adnum;i++)                      
for(j=1;i<=a.adnum;j++)
if(a.dist[i][k]+a.dist[k][j]<a.dist[i][j])
{
a.dist[i][j]=a.dist[i][k]+a.dist[k][j];
a.path[i][j]=a.path[i][k]+a.path[k][j];
}
}