当前位置:   article > 正文

7-5 找出不是两个数组共有的元素 (c语言)_找出不是共有的元素c语言

找出不是共有的元素c语言

step 1: 求两个数组的并集放到d中,并用vis数组表示这个元素是否在d数组中

  1. int n,m,once=1;
  2. scanf("%d", &n);
  3. ifor(i, 0, n-1) {
  4. scanf("%d", &a[i]);
  5. }
  6. scanf("%d", &m);
  7. ifor(i, 0, m-1) {
  8. scanf("%d", &b[i]);
  9. }
  10. int d[2000];
  11. memcpy(d, a, n*4);
  12. memcpy(d + n, b, m*4 );
  13. //第三个参数为字节数,如复制两个int数据到d中,则这里应该写2*sizeof(int)

step 2:判断某一个元素是否在a,b数组中,不在就输出

  1. ifor(i, 0, n -1+m) {
  2. if(vis[d[i]+100]) continue;
  3. //上一段提到的去重,如果出现过,就continue,注意d【i】可能为负数
  4. vis[d[i]+100] =1;
  5. int f1=0,f2=0;
  6. //去两个数组中间找
  7. ifor(j,0,n-1) {
  8. if(d[i]==a[j]) {
  9. f1=1;
  10. break;
  11. }
  12. }
  13. ifor(j,0,m-1) {
  14. if(d[i]==b[j]) {
  15. f2=1;
  16. break;
  17. }
  18. }
  19. //如果f1 f2 都为1,表示两个中都有,就不输出这个元素,不符合题意
  20. if(f1&&f2) continue;
  21. if(once) {
  22. printf("%d",d[i]);
  23. once=0;
  24. } else printf(" %d",d[i]);
  25. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/674028
推荐阅读
相关标签
  

闽ICP备14008679号