当前位置:   article > 正文

找出不是两个数组共有的元素(学习去重复算法)_给定两个整型数组,本题要求找出不是两者共有的元素。 输入格式: 输入分别在两行中

给定两个整型数组,本题要求找出不是两者共有的元素。 输入格式: 输入分别在两行中

描述

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

输入

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

输出

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

输入输出示例

输入输出
示例 1
  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 <stdio.h>
  2. #define MAX 20
  3. int main() {
  4. int i, j, m[MAX];
  5. int num1[MAX], num2[MAX];
  6. int len1, len2;
  7. scanf("%d", &len1);
  8. for (i = 0; i < len1; i++) {
  9. scanf("%d", &num1[i]);
  10. }
  11. /* 输入第一个数组 */
  12. scanf("%d", &len2);
  13. for (i = 0; i < len2; i++) {
  14. scanf("%d", &num2[i]);
  15. }
  16. /* 输入第二个数组 */
  17. int flag, cnt = 0;
  18. for (i = 0; i < len1; i++) {
  19. flag = 1;
  20. for (j = 0; j < len2; j++) {
  21. if (num1[i] == num2[j]) {
  22. flag = 0; /* 是共同的元素 */
  23. }
  24. }
  25. if (flag == 1) {
  26. m[cnt] = num1[i]; /* 放在数组m中 */
  27. cnt++;
  28. }
  29. }
  30. for (i = 0; i < len2; i++) { /* 故技重施,看第二个数组里有没有第一个数组没有的元素 */
  31. flag = 1;
  32. for (j = 0; j < len1; j++) {
  33. if (num2[i] == num1[j]) {
  34. flag = 0;
  35. }
  36. }
  37. if (flag == 1) {
  38. m[cnt] = num2[i];
  39. cnt++;
  40. }
  41. }
  42. printf("*%d", m[0]);
  43. for (i = 1; i < cnt; i++) { /* 输出没有重复元素的m数组 */
  44. flag = 1;
  45. for (j = i - 1; j >= 0; j--) {
  46. if (m[j] == m[i])
  47. flag = 0;
  48. }
  49. if (flag == 1)
  50. printf(" %d", m[i]);
  51. }
  52. return 0;
  53. }

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

闽ICP备14008679号