我的代码不知道哪出了问题,希望大佬指正一下。
#include
#include
void main()
{
int i,j,n;
int a[5][5],b[5][5],c[5][5];
int d[5]={0};
int k=0;
printf("plz input A+E:\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
scanf("%d",&c[i][j]);
b[i][j]=c[i][j];
a[i][j]=0;
}
}
while(k==0)
{
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
for(n=0;n<5;n++)
a[i][j]+=b[i][n]*c[n][j];
if(a[i][j]!=0)
a[i][j]=1;
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
if(a[i][j]=c[i][j])
k=1;
else
{
k=0;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
b[i][j]=a[i][j];
break;
}
if(k==0)
break;
}
}
printf("可达矩阵为:");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
printf("%3d,a[i][j]=");
if(j==4)
printf("\n");
d[i]+=a[j][i];
}
}
printf("层次为:");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(d[j]==i)
printf("%3d,j+1");
}
}
}