请使用c语言使得输入第一行一个正整数t,表示有t组数据,每一组第一行一个正整数n,表示序列的长度,序列长度不超过100,每一组第二行和第三行分别为两个序列的元素,序列中每个元素都不超过100,序列中的元素一定是正整数,然后输出每一组数据输出两个序列中共同出现的元素,每一组数据都要换行,由于有多种输出方式,这里我们要求按照所有共同出现的元素从小到大顺序输出,如果重复多次,也只用输出一次,如果一个共同出现的数都没有,输出0即可。
时间: 2023-09-08 16:07:25 浏览: 205
c代码-输入一个正整数,生成该数值层数的倒金字塔。第一层显示 1 ,第二层显示 2 ,以此类推。
以下是完整的 C 代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_N 100
#define MAX_M 100
int main() {
int t;
scanf("%d", &t);
while (t--) {
int n, m;
scanf("%d", &n);
int a[MAX_N];
for (int i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
scanf("%d", &m);
int b[MAX_M];
for (int i = 0; i < m; i++) {
scanf("%d", &b[i]);
}
int c[MAX_N + MAX_M];
int cnt = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (a[i] == b[j]) {
int flag = 1;
for (int k = 0; k < cnt; k++) {
if (a[i] == c[k]) {
flag = 0;
break;
}
}
if (flag) {
c[cnt++] = a[i];
}
}
}
}
if (cnt == 0) {
printf("0\n");
} else {
for (int i = 0; i < cnt; i++) {
printf("%d ", c[i]);
}
printf("\n");
}
}
return 0;
}
```
该代码实现了输入多组数据,并对每一组数据进行处理,最终输出两个序列中共同出现的元素,按照从小到大的顺序输出,如果没有共同出现的元素,则输出 0。
阅读全文