实验7 最短路--Floyd算法

来源:互联网 发布:飞猪是淘宝的吗 编辑:程序博客网 时间:2024/06/06 09:57
#include<stdio.h>int main(){    int e[10][10];int k,i,j,n,m,t1,t2,t3;    int max=999999;//printf("读入n和m,n表示顶点个数,m表示边的条数 \n");    scanf("%d %d",&n,&m);//读入n和m,n表示顶点个数,m表示边的条数    //矩阵初始化  对角线为0 其余为9999=max    for(i=1;i<=n;i++)    {    for(j=1;j<=n;j++)     {      if(i==j)  e[i][j]=0;      else      e[i][j]=max; }}    //读入各个边    for(i=1;i<=m;i++)    { printf("请输入第%d条边 \n",i);    scanf("%d %d %d",&t1,&t2,&t3);    e[t1][t2]=t3;    }    //Floyd算法    for(k=1;k<=n;k++)       for(i=1;i<=n;i++)            for(j=1;j<=n;j++)                if(e[i][j]>e[i][k]+e[k][j])                    e[i][j]=e[i][k]+e[k][j];    //输出建立的矩阵    printf("用floyd算法建立的矩阵如下 \n");    for(i=1;i<=n;i++)    {     for(j=1;j<=n;j++)     {     printf("%10d",e[i][j]);     }     printf("\n");    }    return 0;}

原创粉丝点击