题目原文
题目描述
给你两个序列,长度相等
请找出两个序列中共同出现的元素
由于有多种输出方式,这里我们要求按照所有共同出现的元素从小到大顺序输出,如果重复多次,也只用输出一次,如果一个共同出现的数都没有,输出0即可。
题目保证序列中的元素一定是正整数
输入
第一行一个正整数t,表示有t组数据
每一组第一行一个正整数n,表示序列的长度,序列长度不超过100
每一组第二行和第三行分别为两个序列的元素,序列中每个元素都不超过100,
输出
每一组数据输出两个序列中共同出现的元素
样例
输入样例1
2
3
3 5 7
7 5 1
3
1 2 3
4 5 6
输出样例1
5 7
0
输入样例2
1
14
66 55 74 75 57 49 66 46 17 61 96 95 72 34
22 47 83 13 74 32 75 70 69 26 64 5 61 7
输出样例2
61 74 75
AC代码
#include <stdio.h>
int cnt[111];
int main()
{
int t;
scanf("%d", &t);
while (t--)
{
for (int i = 0; i <= 100; i++)
cnt[i] = 0;
int n, flag = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++)
{
int x;
scanf("%d", &x);
cnt[x] = 1;
}
for (int i = 0; i < n; i++)
{
int x;
scanf("%d", &x);
if (cnt[x])
{
cnt[x] = 2;
flag = 1;
}
}
if (!flag)
printf("0 ");
else
for (int i = 0; i <= 100; i++)
if (cnt[i] == 2)
printf("%d ", i);
printf("\n");
}
return 0;
}