ISM 可达矩阵 算法 C语言实现
# 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语言计算可达矩阵代码到此为止,分层稍后补上。
如有错误,希望指正。