关联账户
本题为代码补全填空题,请将题目中给出的源代码补全,并复制到右侧代码框中,选择对应的编译语言(C/Java)后进行提交。若题目中给出的源代码语言不唯一,则只需选择其一进行补全提交即可。复制后需将源代码中填空部分的下划线删掉,填上你的答案。提交后若未能通过,除考虑填空部分出错外,还需注意是否因在复制后有改动非填空部分产生错误。
为增大反腐力度,某地警方专门支队,对若干银行账户展开调查。
如果两个账户间发生过转账,则认为有关联。如果 a,b 间有关联, b,c 间有关联,则认为a,c 间也有关联。
对于调查范围内的 n 个账户(编号 0 到n−1),警方已知道 m 条因转账引起的直接关联。
现在希望知道任意给定的两个账户,求出它们间是否有关联。有关联的输出 1,没有关联输出 0。
小明给出了如下的解决方案。
请分析源代码,并提交划线部分缺少的代码。
C
#include <stdio.h>
#define N 100
int connected(int* m, int p, int q)
{
return m[p]==m[q]? 1 : 0;
}
void link(int* m, int p, int q)
{
int i;
if(connected(m,p,q)) return;
int pID = m[p];
int qID = m[q];
for(i=0; i<n; i++)="" ________________;="" }="" void="" show(int*="" m)="" {="" int="" i;="" for(i="0;" i<10;="" printf("%d="%d" ",="" i,="" m[i]);="" printf("\n");="" main()="" m[n];="" i<n;="" m[i]="i;" 初始状态,每个节点自成一个连通域="" link(m,0,1);="" link(m,1,2);="" link(m,3,4);="" link(m,5,6);="" link(m,6,7);="" link(m,8,9);="" link(m,3,7);="" link(m,10,11);="" link(m,6,10);="" connected(m,4,7));="" connected(m,4,5));="" connected(m,7,9));="" connected(m,11,4));="" connected(m,9,2));="" connected(m,12,5));="" return="" 0;="" ```="" <="" div="">
<div class="option-val">
</div>
<div>
</div>
<div>
<a href="/dist/#/topic?gid=28078f1e6caa11ee999734e6adfb30ff" class="answer-but">查看答案</a>
</div>
</n;></stdio.h>