1.7.1清单的奸细

1.7思考题:

1.7.1清单的奸细

【问题描述】

我党有N名(保证N为偶数)特工,这其中混入了2名奸细,谁也不知道是哪个。好在真正的特工都有自己的编号,并且编号都是成对出现的,既2名真正特工拥有相同编号,而那2名奸细只能各自瞎编一个编号。
【输入格式】
2行
第1行包含一个整数N(保证为偶数,0 < N <= 100000)
第2行包含N个整数(每个整数小于10000000),代表每个人的编号,空格隔开。
【输出格式】
2名奸细的编号(顺序和输出一致),空格隔开
【样例输入】
6
54321 34 12345 54321 33 12345
【样例输出】
34 33
思路分析
本题可以因为确定只有两个奸细,且奸细的编号一定不同所以代码的思路就很清晰了,可以直接对比找出不同的两个数据

#include<stdio.h>
int main(){
    
    
	int a[100001]={
    
    0},i,n,j,k,b[2]={
    
    0},z=0,p=0,ans=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++){
    
    
		scanf("%d",&a[i]);
	}
	for(j=1;j<=n;j++){
    
    
		for(k=1;k<=n;k++){
    
    
			if(k==j){
    
    
				continue;
			}
			if(a[j]==a[k]){
    
    
				z=1;
			}
			else{
    
    
				p++;
			}
		}
		if(p==n-1&&z==0){
    
    
			b[ans]=a[j];
			ans++;			
		}
		p=0;
		z=0;
	}
	printf("%d %d",b[0],b[1]);
}

猜你喜欢

转载自blog.csdn.net/qq_52044923/article/details/112986504
今日推荐