实验7-1-8 找出不是两个数组共有的元素

思路:此题有需要注意是同一数字不重复输出,那就需要再创建一个数组保存结果。
有一个功能会用到的比较频繁,那就是判断某个元素在不在数组中,因此将其封装为函数。
#include <math.h>
#include <stdio.h>
int eleminlist(int a[], int n, int elem) {
// 元素elem是否在a中,如果在返回1否则返回0
for (int i = 0; i < n; i++)
if (elem == a[i])
return 1;
return 0;
}
int main() {
int n1, n2, n3 = 0;
scanf("%d", &n1);
int a[20], a1[20], re[40];
for (int i = 0; i < n1; i++) {
scanf("%d", &a[i]);
}
scanf("%d", &n2);
for (int i = 0; i < n2; i++) {
scanf("%d", &a1[i]);
}
for (int j = 0; j < n1; j++) {
if (eleminlist(a1, n2, a[j]) == 0 && eleminlist(re, n3, a[j]) == 0)
re[n3++] = a[j];
}
for (int j = 0; j < n2; j++) {
if (eleminlist(a, n1, a1[j]) == 0 && eleminlist(re, n3, a1[j]) == 0)
re[n3++] = a1[j];
}
if(n3) printf("%d",re[0]);
for(int i=1;i<n3;i++)
printf(" %d",re[i]);
return 0;
}
这是一个C语言实现的程序,用于找出两个输入数组之间的非共有元素。程序首先读取两个数组,然后通过遍历并使用自定义的`eleminlist`函数检查元素是否存在,将非共有元素存储在一个新数组中。最后,程序打印出这些非共有元素。
1615

被折叠的 条评论
为什么被折叠?



