求差集.c 777 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include <stdio.h>
  2. int main() {
  3. // 读取集合A
  4. int A[1000];
  5. int num;
  6. int idx_A = 0;
  7. int i,j;
  8. while (scanf("%d", &num) && num != -1) {
  9. A[idx_A++] = num;
  10. }
  11. // 读取集合B
  12. int B[1000];
  13. int idx_B = 0;
  14. while (scanf("%d", &num) && num != -1) {
  15. B[idx_B++] = num;
  16. }
  17. // 计算差集
  18. int diff[1000];
  19. int idx_diff = 0;
  20. for (i = 0; i < idx_A; i++) {
  21. int in_B = 0;
  22. for (j = 0; j < idx_B; j++) {
  23. if (A[i] == B[j]) {
  24. in_B = 1;
  25. break;
  26. }
  27. }
  28. if (!in_B) {
  29. diff[idx_diff++] = A[i];
  30. }
  31. }
  32. // 输出差集
  33. for (i = 0; i < idx_diff; i++) {
  34. printf("%d ", diff[i]);
  35. }
  36. return 0;
  37. }