算法的自己的语言描述:(i行j列)依次遍历邻接矩阵中的所有元素M[j,i](就是这里让人感到别扭!!!),比如按照先列后行进行,如果M[j,i] != 0,那么就把i行加到第j行上。(尝试过,,遍历M[i,j],,j加到i行的情况,) 以下是例子:
#include<stdio.h>
int main()
{
int a[50][50];
int i,t,j,n;
scanf("%d", &n);
for(i=0; i<=n-1; i++)
for(t=0; t<=n-1; t++)
scanf("%d", &a[i][t]);
for(i=0; i<=n-1; i++)
for(t=0; t<=n-1; t++)
if(a[t][i])//这里i行t列,则逐行逐列遍历a[t][i];
for(j=0; j<=n-1; j++)
a[t][j]=a[t][j]||a[i][j];//这么写,就是把相加以后
for(i=0; i<=n-1; i++)
for(t=0; t<=n-1; t++)
{
if(t==n-1)
{
printf("%d\n",a[i][t]);
}
else
{
printf("%d ",a[i][t]);
}
}
}