当前位置:   article > 正文

pta 习题集 5-2 找出不是两个数组共有的元素 (5分)

找出不是两个数组共有的元素 pta

给定两个整型数组,本题要求找出不是两者共有的元素。

输入格式:

输入分别在两行中给出两个整型数组,每行先给出正整数NN≤2020),随后是NN个整数,其间以空格分隔。 

输出格式:

在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。 

输入样例:

  1. 10 3 -5 2 8 0 3 5 -15 9 100
  2. 11 6 4 8 2 6 -5 9 0 100 8 1

输出样例:

3 5 -15 6 4 1
  1. #include <iostream>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5. #include <math.h>
  6. #include <string>
  7. #include <map>
  8. using namespace std;
  9. int n,m;
  10. int a[105];
  11. int b[105];
  12. map<int,int> mm;
  13. int main()
  14. {
  15. scanf("%d",&n);
  16. for(int i=1;i<=n;i++)
  17. scanf("%d",&a[i]);
  18. scanf("%d",&m);
  19. for(int j=1;j<=m;j++)
  20. scanf("%d",&b[j]);
  21. int flag=0;
  22. mm.clear();
  23. for(int i=1;i<=n;i++)
  24. {
  25. int tag=1;
  26. for(int j=1;j<=m;j++)
  27. {
  28. if(a[i]==b[j])
  29. tag=0;
  30. }
  31. if(tag&&!mm[a[i]])
  32. {
  33. if(!flag)
  34. {
  35. printf("%d",a[i]);
  36. flag=1;
  37. }
  38. else
  39. printf(" %d",a[i]);
  40. mm[a[i]]=1;
  41. }
  42. }
  43. for(int i=1;i<=m;i++)
  44. {
  45. int tag=1;
  46. for(int j=1;j<=n;j++)
  47. {
  48. if(b[i]==a[j])
  49. tag=0;
  50. }
  51. if(tag&&!mm[b[i]])
  52. {
  53. if(!flag)
  54. {
  55. printf("%d",b[i]);
  56. flag=1;
  57. }
  58. else
  59. printf(" %d",b[i]);
  60. mm[b[i]]=1;
  61. }
  62. }
  63. printf("\n");
  64. return 0;
  65. }


转载于:https://www.cnblogs.com/dacc123/p/8228555.html

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

闽ICP备14008679号