两个小小的细节,调试了半天啊,不过这次学了下在codeblocks里面的调试,原来我只会在vc里面调试
阻断路径问题,Dijkstra算法,从起始点到终点,只要两个步骤,第一求距离起始点最短的点,把该点加入起点集后更新起点到其余个点的距离,知道把所有点都添加进来,所以外循环的次数就是点数
1 #include2 #include 3 #include 4 #define MAX 0x7f7f7f7f 5 int map[155][155],visited[155],dis[155]; 6 char path[155][35],start[35],end[35]; 7 8 9 int count=0;10 void init()11 {12 memset(path,0,sizeof(path));13 memset(visited,0,sizeof(visited));14 memset(dis,MAX,sizeof(dis));15 memset(map,MAX,sizeof(map));16 count=0;17 }18 19 int findindex(char a[])//20 {21 int i;22 for(i=0;i map[pos][j]+dis[pos])55 {56 dis[j]=map[pos][j]+dis[pos];57 }58 }59 }60 }61 62 63 64 int n,min;65 66 int main()67 {68 char a[35],b[35];69 int i,x,y,value;70 71 while(1)72 {73 init();//初始化74 scanf("%d",&n);75 if(n==-1) break;76 scanf("%s%s",start,end);77 findindex(start);78 findindex(end);79 for(i=0;i
唉……