当前位置:   article > 正文

练习7-4 找出不是两个数组共有的元素_python给定两个整形数组,本题要求找出不是两者共有的元素

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

刷到一些比较有意思的题目,发出来大家共同学习。

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

输入格式:

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

输出格式:

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

输入样例:

  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

解题思路:此题从常规思路出发是读取两个数组,再分别检查自身和彼此有没有重复元素,初步估计得四个嵌套循环,输出数组又是两个循环。很明显太麻烦。可以试着在读取时候控制不要在一个数组内读入重复元素,并在读取第二个数组时候,检查是否与第一个数组内的数据有重复。

我采取的是分别读取a[]和b[],分别控制a[]和b[]内没有重复元素,再分别核对彼此的重复元素,无重复输出。我的方法肯定不是最好的,希望大家多多指教。

  1. #include <stdio.h>
  2. int check(int a[],int cnt,int value){//检查数组a中是否有value,有的话返回下标
  3. int res=-1;
  4. for(int i=0;i<cnt;i++){
  5. if(value==a[i])res=i;
  6. }
  7. return res;
  8. }
  9. int main(int argc,char const *argv[]){
  10. int n,num;
  11. if(scanf("%d",&n));//输入第一个数组的长度
  12. int a[n];
  13. for(int i=0;i<n;i++){//读入第一个数组
  14. if(scanf("%d",&num));
  15. if(i==0){
  16. a[i]=num;
  17. }else{
  18. while(check(a,i,num)!=-1){//读取过程中,扫描前面的元素是否有重复
  19. if(scanf("%d",&num));//有重复重新读入,长度--;
  20. n--;
  21. }
  22. a[i]=num;
  23. }
  24. }
  25. int an=n;
  26. if(scanf("%d",&n));//读入第二个数组的长度
  27. int b[n];
  28. for(int i=0;i<n;i++){//读入第二个数组
  29. if(scanf("%d",&num));
  30. if(i==0){
  31. b[i]=num;
  32. }else{
  33. while(check(b,i,num)!=-1){//同样在读取过程中检查
  34. if(scanf("%d",&num));//有重复重新读取,长度--;
  35. n--;
  36. }
  37. b[i]=num;
  38. }
  39. }
  40. //读取结束后,两个数组中分别没有重复元素。 长度分别为an,bn
  41. int bn=n,flag=1;
  42. for(int i=0;i<an;i++){//逐一核对b中是否有a[i],没有的话输出
  43. int cnt=check(b,bn,a[i]);
  44. if(cnt==-1){
  45. if(flag==0)printf(" ");//flag控制空格的输出
  46. flag=0;
  47. printf("%d",a[i]);
  48. }
  49. }
  50. for(int i=0;i<bn;i++){//逐一核对a中是否有b[i],没有的话输出
  51. int cnt=check(a,an,b[i]);
  52. if(cnt==-1){
  53. if(flag==0)printf(" ");//flag控制空格的输出
  54. else flag=0;
  55. printf("%d",b[i]);
  56. }
  57. }
  58. return 0;
  59. }

 

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

闽ICP备14008679号