
#include<stdio.h>
int friends(int n,int m,int r[][2])
{
int i,count=0;
//用Q数组来记录每个节点的好友节点,并初始化
int Q[n+1];
for(i=0;i<=n;i++)
{Q[i]=0;}
for(i=0;i<m;i++)
{
while(Q[r[i][0]]!=0)
r[i][0]=Q[r[i][0]];
while(Q[r[i][1]]!=0)
r[i][1]=Q[r[i][1]];
if(r[i][0]==r[i][1])
continue;
Q[r[i][0]]=r[i][1];
}
for(i=1;i<=n;i++)
if(Q[i]==0)
count ++;
return count;
}
int main(void)
{
//数组 r 记录朋友关系
int r[5][2]={{1,2},
{5,4},{1,5},
{4,3},
{7,8}};
printf("%d",friends(8,5,r));
return 0;
}
本文介绍了一个使用C语言实现的好友关系计算程序。该程序通过输入节点间的关系,计算并输出独立的好友群体数量。通过对每一对关系进行查找和合并操作,确保所有相连的朋友都属于同一个群体。

被折叠的 条评论
为什么被折叠?



