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

📄 08.c

📁 算法设计与分析实验报告
💻 C
字号:
#include<stdio.h>
main()
{int c[5],b[5],d[5]={1,1,1,1,1};
int a[5][5];int i,j,n,t,h;c[2]=0;
/*创建二维数组表示权数*/
 for(h=0;h<=4;h++)
 {a[0][1]=1;a[0][2]=2;a[0][3]=3;
a[0][4]=4;a[1][2]=2;
 a[1][3]=4;a[1][4]=7;a[2][3]=1;
a[2][4]=1;a[3][4]=6;
/*对权数赋初值*/
 for(i=0;i<=4;i++)
 {for(j=i;j>=0;j--)
   if(j==i)
    a[i][j]=10;
   else
    a[i][j]=a[j][i];


 }
/通过循环语句给从本地走到本地的路径赋一很大的值,不影响运行结果*/
 c[3]=a[d[0]][d[1]]+a[d[1]][d[2]]+a[d[2]][d[3]]+a[d[3]][d[4]]+a[d[4]][d[0]];
/*D为中间数组,为C赋初值*/
  i=0;b[0]=h;c[2]=0;
  while(i!=4)
  {c[1]=a[b[i]][0];c[0]=0;
   for(j=0;j<=4;j++)


    if(c[1]>a[b[i]][j])
     {c[1]=a[b[i]][j];
      c[0]=j;}
  /*通过条件语句修改C*/
      b[i+1]=c[0];
   c[2]=c[2]+a[b[i]][c[0]];
   if(i==3)
    c[2]=c[2]+a[b[4]][b[0]];
   for(t=0;t<=i;t++)
   {a[b[t]][c[0]]=10;
    a[c[0]][b[t]]=10;}
    i++;
  }
  for(j=0;j<=4;j++)
   printf("%3d",b[j]);printf("%10d\n",c[2]);
 /*输出每次的最短路径*/
  if(c[2]<c[3])
  {for(j=0;j<=4;j++)
   d[j]=b[j];c[3]=c[2];}
 }
for(i=0;i<=4;i++)

 printf("%3d",d[i]);
printf("%10d",c[3]);
/*输出几次比较后的最短路径*/
 printf("\n");getch();
}
 

⌨️ 快捷键说明

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