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

📄 cal-diameter.c

📁 计算网络静态参数的直径c程序(其中的数据是具体的可换成其他的数据)。
💻 C
字号:
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define N 7

 main()
{

static int tag[N],diameter[N][N],p,q ,deg1[N],deg2[N],adjmatrix[N][N];
 float sum;
int i,j,k,l,d;
  adjmatrix[1][2]=adjmatrix[2][1]=1;
  adjmatrix[3][2]=adjmatrix[2][3]=1;
  adjmatrix[5][2]=adjmatrix[2][5]=1;
  adjmatrix[3][4]=adjmatrix[4][3]=1;
  adjmatrix[5][4]=adjmatrix[4][5]=1;
  adjmatrix[5][6]=adjmatrix[6][5]=1;
  sum=0;
for(l=1;l<N;l++)
{ q=1;
 for(j=1;j<N;j++){tag[j]=deg1[j]=deg2[j]=0;}
 p=1; deg1[1]=l; tag[l]=1; d=0; goto L2;

L1: p=k;  for(j=1;j<=p;j++)deg1[j]=deg2[j];
L2: k=0; d++;
  for(i=1;i<=p;i++)
  {
  for(j=1;j<N;j++)
    {if(tag[j]==1)continue;
     if(j==deg1[i])continue;
     if(adjmatrix[deg1[i]][j]==0)continue;
     if(adjmatrix[deg1[i]][j]==1)
       { k++;
         deg2[k]=j;
         q++;
         tag[j]=1;
         diameter[l][j]=d;
       }
     
    }

  if(i==p&&k!=0) goto L1;

  }
  sum=sum+q;    printf("the network is disconnected %d!\n",q);

}
  if((2*sum)!=(N-1)*N) printf("the network is disconnected %f!\n",sum);
sum=0;
 for(i=1;i<N;i++)
  {for(j=1;j<N;j++){printf("%d ",diameter[i][j]); sum=sum+diameter[i][j]; }
   printf("\n");
   }
   sum=sum/(N-1)/(N-2);    printf("%f\n",sum);
   
}



⌨️ 快捷键说明

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