Processing math: 100%
编程题
                关联账户

题目描述

本题为代码补全填空题,请将题目中给出的源代码补全,并复制到右侧代码框中,选择对应的编译语言(C/Java)后进行提交。若题目中给出的源代码语言不唯一,则只需选择其一进行补全提交即可。复制后需将源代码中填空部分的下划线删掉,填上你的答案。提交后若未能通过,除考虑填空部分出错外,还需注意是否因在复制后有改动非填空部分产生错误。

为增大反腐力度,某地警方专门支队,对若干银行账户展开调查。

如果两个账户间发生过转账,则认为有关联。如果 a,b 间有关联, b,c 间有关联,则认为a,c 间也有关联。

对于调查范围内的 n 个账户(编号 0n1),警方已知道 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>