编辑代码

#include <stdio.h>
int main()
{
    int i,j,k,l,n,minb,h,y;
    int m=0;
    int min=1;
    int mina=0;
    int jz[9][9]={{0,2,99,2,99,99,99,99,99},{2,0,2,99,2,99,99,99,99},{99,2,0,99,99,2,99,99,99},{2,99,99,0,1,99,2,99,99},{99,2,99,1,0,1,99,2,99},{99,99,2,99,1,0,99,99,2},{99,99,99,2,99,99,0,2,99},{99,99,99,99,2,99,2,0,2},{99,99,99,99,99,2,99,2,0}};
    int dis[9]={0,2,99,2,99,99,99,99,99};
    int jud[9]={1,0,0,0,0,0,0,0,0};
    int a[9],b[9];
    for (k=2;k<9;k++)
    {
        if(dis[k]<dis[min])
        min=k;
        }
        for(j=0;j<9;j++)
        {
            if(jz[min][j]!=99&&jz[min][j]!=0)
            {
                if(jz[min][j]+dis[min]<dis[j])
                dis[j]=jz[min][j]+dis[min];
                }
                }
                jud[min]=1;
                while(y==0)
                {
                    y=1;
                    for(l=0;l<9;l++)
                    {
                        if(jud[l]==0)
                        {
                            a[m]=dis[l];
                            b[m]=l;
                            m=m+1;
                            }
                            }
                            for(n=0;n<9;n++)
                            {
                                if(a[n]<a[mina])
                                {
                                    mina=n;
                                    minb=b[n];
                                    }
                                    }
                                    for(j=0;j<9;j++)
                                    {
                                        if(jz[minb][j]!=99&&jz[minb][j]!=0)
                                        {
                                            if(jz[minb][j]+dis[minb]<dis[j])
                                            dis[j]=jz[minb][j]+dis[minb];
                                            }
                                            }
                                            jud[minb]=1;   
                                            for(h=0;h<9;h++)
                                            {
                                                if(jud[h]==0)
                                                y=0;
                                                }
                                                }
                                                for(i=0;i<9;i++)
                                                {
                                                    printf("dis[i]==%d\n",dis[i]);
                                                    }
                                                    return 0;
                                                    }