#include<iostream>
#include<stdlib.h>
using namespace std;
int **matrix(int n)
{
int i;
int **one=(int **)malloc(n*sizeof(int *));
for (i=0;i<n;i++)
{
one[i]=(int *)malloc(n*sizeof(int));
}
return one;
}
void simple(int **x,int n )
{
int i;
for(i=0;i<n;i++)
{
if(x[i][i]!=0)
break;
}
if(i==n)
cout<<" 这是简单图"<<endl;
else
cout<<" 这不是简单图"<<endl;
}
void degree(int **x,int n )
{
int i,j;
int k=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
k=k+x[i][j];
}
cout<<"度为"<<k<<endl;
}
void connect(int **x,int n )
{
int i,j,k,l,m=n;
int **y=matrix(n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
y[i][j]=x[i][j];
}
}
while(m-1)
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
k=0;
for(l=0;l<n;l++)
{
k=k+y[i][l]*x[l][j];
}
y[i][j]=k;
}
}
m--;
}
k=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(!y[i][j])
break;
k++;
}
}
if(k==n*n)
cout<<"连通"<<endl;
else
cout<<"不连通"<<endl;
}
int main()
{
int i,j;
int n=10;
int **x=matrix(n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
x[i][j]=0; //输入
cout<<x[i][j]<<' ';
}
cout<<endl;
}
simple(x,n);
degree(x,n);
connect(x,n );
return 0;
}