ISM 可达矩阵 算法 C语言实现

March 29, 2009 | tags ISM 可达矩阵 分层   | views
Comments 0

# include <stdio.h>
# define ws 8
void main()
{
         int num,m,n,o;
         int count=0;
         int shuzu[ws][ws];
         int shuzu2[ws][ws];
         //输入矩阵
         printf("请输入矩阵:(0 0 1 0 1 0 1 0 0)\n");
         for(m=0;m<ws;m++)
                  for(n=0;n<ws;n++)
                  {
                           scanf("%d",&num);
                           shuzu[m][n]=num;
                  }
         //输出矩阵
         printf("你输入的矩阵为:\n");
         for(m=0;m<ws;m++)
          {
                   for(n=0;n<ws;n++)
                            printf("%d ",shuzu[m][n]);
                   printf("\n");
          }
         //计算可达矩阵
         for(m=0;m<ws;m++)
         {
                  for(n=0;n<ws;n++)
                           if(shuzu[m][n]==1)
                                    for(o=0;o<ws;o++)
                                             shuzu[m][o]=shuzu[n][o]||shuzu[m][o];
         }
         for(m=0;m<ws;m++)
                  for(n=0;n<ws;n++)
                           if(m==n)
                                    shuzu[m][n]=shuzu[m][n]||1;
         //输出可达矩阵
         printf("可达矩阵为:\n");
         for(m=0;m<ws;m++)
         {
                  for(n=0;n<ws;n++)
                           printf("%d ",shuzu[m][n]);
                  printf("\n");
         }
}

C语言计算可达矩阵代码到此为止,分层稍后补上。

如有错误,希望指正。




发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。