六十八.Floyd-Warshall C语言实现

    科技2022-07-11  71

    #include<stdio.h> int main() { int e[10][10],k,i,j,n,m,t1,t2,t3; int inf = 99999999; //正无穷值 scanf("%d %d",&n,&m); //读入顶点数和边的条数 for(i=1;i<=n;i++) //初始化 for(j=1;j<=n;j++) if(i==j) e[i][j] = 0; else e[i][j] = inf; for(i=1;i<=m;i++) //读入边 { scanf("%d %d %d",&t1,&t2,&t3); //顶点t1到顶点t2路径为t3 e[t1][t2] = t3; } for(k=1;k<=n;k++) //经过1~n号顶点的中转 ,求两点之间的最短路径 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]; for(i=1;i<=n;i++) //输出最终结果 { for(j=1;j<=n;j++) { printf("d",e[i][j]); } printf("\n"); } return 0; }

    Processed: 0.012, SQL: 8