⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 交通模拟2.c

📁 数据结构168个实验程序,很全面
💻 C
字号:
#include <stdio.h>
#define MAX 100


void main()
{
   int  path[MAX];
    int  s[MAX],u,vnum,w;
   int  i,j,k,m,n,v0;
long int cost[MAX][MAX],dist[MAX],wm;
   scanf("%d",&n);
   printf("********************************************\n\n"); 
 
     for(i=1;i<=n;i++)
    {for(j=1;j<=n;j++)
	 scanf("%ld",&cost[i][j]);
	 }                              
printf("***************************************************\n\n"); 

printf("输入出发的站点");
   scanf("%d",&v0);
   printf("输入终点的站点:");
   scanf("%d",&m);
  
  for(w=1;w<=n;w++)
   { dist[w]=cost[v0][w];
     if(cost[v0][w]<327670)
     path[w]=v0;
   }
  for(w=1;w<=n;w++)
   s[w]=0;
   s[v0]=1;
    vnum=1;
  while (vnum<n-1)
  {wm=327670;
   u=v0;
   for(w=1;w<=n;w++)
     if(s[w]==0&&dist[w]<wm)
	 {u=w;
      wm=dist[w];
	 }
    s[u]=1;
    vnum++;
   for(w=1;w<=n;w++)
      if(s[w]==0&&dist[u]+cost[u][w]<dist[w])
	  {dist[w]=dist[u]+cost[u][w];
       path[w]=u;
	  }
  }
printf("****%d---->%d:\n\n",v0,m);
for(i=1;i<=n;i++)
 {for(j=1;j<=n;j++)
 printf("%10ld ",cost[i][j]);
 printf("\n");
 
 }
 printf("\n");
 printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n\n");
 for(i=1;i<=n;i++)
 if(s[i]==1)
   {k=i;
    while (k!=v0)
     {printf("%d<-",k);
	 k=path[k];
	 }
	 printf("%d ",k);
     printf("路程**:%ld \n\n",dist[i]);
   }
 else
  {printf("%d<-%d",i,v0);
   printf(" 327670 ");
  }

printf("\n\n**********************************************\n\n\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -