题目:有2个自然数组 里面的保存着100以内的自然数,编程求出两个数组的交集。数组中可能有重复的数字,输出的交集中不包含重复的数字。
我的实现代码如下:
#include <stdio.h> #include <string.h> /*输出交集数组,同时返回交集元素个数*/ int NaturalUnion(int a[], size_t len_a, int b[], size_t len_b, int c[]) { int tmp[101]; int i,index=0; if(a && b && (len_a != 0) && (len_b != 0)) { memset(tmp,-1,sizeof(tmp)/sizeof(int)); for(i=0;i<len_a;i++) { tmp[a[i]] = a[i]; } for(i=0;i<len_b;i++) { if(b[i] == tmp[b[i]]) { c[index++] = tmp[b[i]]; } } } return index; } int main(int argc,char *argv[]) { int a[] = {1,2,3,3,4,6}; int b[] = {3,4,5,7,8,9,10}; int c[101]; int count = 0,i; count = NaturalUnion(a,sizeof(a)/sizeof(int),b,sizeof(b)/sizeof(int),c); for(i=0;i<count;i++) { printf("%d\n",c[i]); } return 0; }
- 微信扫码赞助
- 支付宝赞助