题目描述
假设无向图G采用邻接矩阵存储,求出图G最大度值并输出顶点的编号(有多个结果的都要输出)。
输入
第一行为一个整数n,表示顶点的个数(顶点编号为0到n-1)。接下来是为一个n*n大小的整数矩阵,表示图的邻接关系。数字为0表示不邻接,1表示邻接。
输出
图G中度的最大值以及顶点编号。第一行表示最大度值,第二行表示所有顶点的编号。
样例输入
5
0 1 0 1 1
1 0 1 1 1
0 1 0 1 1
1 1 1 0 1
1 1 1 1 0
样例输出
4
134
参考程序
#include<stdio.h>
void CreateMap(int n,int edges[100][100])//创建邻接矩阵
{
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
scanf("%d",&edges[i][j]);
}
}
int main()
{
int edges[100][100];
int n;
scanf("%d",&n);
CreateMap(n,edges);
int max=0;
for(int i=0;i<n;i++)//查找最大度的值
{
int sum=0;
for(int j=0;j<n;j++)
{
sum+=edges[i][j];
}
if(sum>max) max=sum;
}
printf("%d\n",max);
for(int i=0;i<n;i++)//输出为最大度的序号
{
int sum=0;
for(int j=0;j<n;j++)
{
sum+=edges[i][j];
}
if(sum==max) printf("%d",i);
}
}
注意
该程序仅供学习参考!