Floyd算法是求每两点之间的最短路径 核心代码: for(k=0;k<m;k++) for(p=0;p<m;p++) for(q=0;q<m;q++) if(a[p][q]>a[p][k]+a[k][q]) a[p][q]=a[p][k]+a[k][q]; 要注意数组的初始化: for(k=0;k<100;k++) { for(p=0;p<100;p++) { if(p==k) a[k][p]=0; else a[k][p]=9999; //给定一个大数就可以了 } }