商务合作加Q:411239339

求两个自然数组中的交集

浏览:709次阅读
没有评论

共计 1047 个字符,预计需要花费 3 分钟才能阅读完成。

题目:有 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;
}

 

正文完
扫码赞助
post-qrcode
 0
果子
版权声明:本站原创文章,由 果子 于2014-08-15发表,共计1047字。
转载说明:除特殊说明外本站文章皆由果较瘦原创发布,转载请注明出处。
评论(没有评论)