Chinaunix首页 | 论坛 | 博客
  • 博客访问: 436119
  • 博文数量: 67
  • 博客积分: 2468
  • 博客等级: 上尉
  • 技术积分: 1050
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-05 01:21
文章分类

全部博文(67)

文章存档

2013年(1)

2012年(65)

2011年(1)

分类: C/C++

2012-07-25 15:02:51

点击(此处)折叠或打开

  1. /*求两个整型数组的异集,即A+B-(A与B的交集)*/
  2. #include <iostream>
  3. using namespace std;

  4. int search_one(int num, int *b_set_p, int b_set_size);

  5. int
  6. main(int argc, char *argv[])
  7. {
  8.     int array_a[] = {2, 3, 4, 8, 23, 21, 68, 79, 9, 15, 19};
  9.     int array_b[] = {23, 68, 94, 74, 89, 70, 20, 15};
  10.     int array_a_size, array_b_size;
  11.     array_a_size = sizeof(array_a)/sizeof(int);
  12.     array_b_size = sizeof(array_b)/sizeof(int);

  13.     int i;
  14.     cout << "different at array_a:" << endl;
  15.     for(i = 0; i < array_a_size; i++){
  16.         if(!search_one(array_a[i], array_b, array_b_size)){
  17.             /*打印出该元素*/
  18.             cout << array_a[i] << " ";
  19.         }
  20.     }

  21.     cout << endl << "different at array_b:" << endl;
  22.     for(i = 0; i < array_b_size; i++){
  23.         if(!search_one(array_b[i], array_a, array_a_size)){
  24.             /*打印出该元素*/
  25.             cout << array_b[i] << " ";
  26.         }
  27.     }

  28.     cout << endl << "array_a and array_b have the same elements:" <<endl;
  29.     for(i = 0; i < array_a_size; i++){
  30.         if(search_one(array_a[i], array_b, array_b_size)){
  31.             /*打印出该元素*/
  32.             cout << array_a[i] << " ";
  33.         }
  34.     }
  35.     return 0;
  36. }

  37. /*在B集合里寻找一个元素,找到返回非零,否则返回零。*/
  38. int
  39. search_one(int num, int *b_set_p, int b_set_size)
  40. {
  41.     int i;
  42.     for(i = 0; i < b_set_size; i++){
  43.         if(num == *(b_set_p+i))
  44.             return 1;
  45.     }
  46.     return 0;
  47. }

阅读(2825) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~