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

这是一个C语言实现的程序,用于找出两个输入数组之间的非共有元素。程序首先读取两个数组,然后通过遍历并使用自定义的`eleminlist`函数检查元素是否存在,将非共有元素存储在一个新数组中。最后,程序打印出这些非共有元素。

实验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;
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kilig*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值