高分悬赏!!!请高手用C++:求集合{1,3,5,8,9}和集合{2,3,6,8,9,15}的交集,并输出结果.

请高手用C++:求集合{1,3,5,8,9}和集合{2,3,6,8,9,15}的交集,并输出结果.[版本6.0]谢谢大家帮忙了~~~~!!QQ:359388179谢谢~~... 请高手用C++:求集合{1,3,5,8,9}和集合{2,3,6,8,9,15}的交集,并输出结果.[版本6.0]

谢谢大家帮忙了~~~~!!
QQ:359388179
谢谢~~~谢谢大家!!

但是前面几个对我有点复杂,不是很理解。只有采纳的这个简单。

但是还是很感谢大家~~~~~谢谢!!
展开
 我来答
jszlmzx
2008-12-27 · TA获得超过242个赞
知道小有建树答主
回答量:256
采纳率:0%
帮助的人:180万
展开全部
#include<iostrea.h>
void main()
{
int i,j,n=0;
int a[5]={1,3,5,8,9};
int b[6]={2,3,6,8,9,15};
int c[100];
for(i=0;i<5;i++)
for(j=0;j<6;j++)
if(a[i]==b[j])
{
c[n]=b[j];
n++;
}
cout<<c<<endl;
}

要是只是求你给的两个集合的交集的话,这样就已经足够了!不过这其实还是可以实现通用的,既然你没问,那也就算了!呵呵!
第一次答题,支持一个!
jiyanmoyu
2008-12-26
知道答主
回答量:23
采纳率:0%
帮助的人:24.9万
展开全部
#include<set>
#include<iostream>
#include<iterator>
#include<algorithm>
using namespace std;
int main()
{
set<int> setA,setB;//定义两个集合setA,和setB
int a[]={1,3,5,8,9},b[]={2,3,6,8,9,15};
setA.insert(a,a+sizeof(a)/sizeof(int));//将数组a中的数据插入集合setA中
setB.insert(b,b+sizeof(b)/sizeof(int));
set_intersection(setA.begin(),setA.end(),setB.begin(),setB.end(),ostream_iterator<int>(cout," "));//求出setA和setB的交集并输出
cout<<endl;
system("pause");
return 0;
}

以下就是VC6的PJ定义的求集合交集的一个算法
template<class _II1, class _II2, class _OI> inline
_OI set_intersection(_II1 _F1, _II1 _L1, _II2 _F2, _II2 _L2,
_OI _X)
{for (; _F1 != _L1 && _F2 != _L2; )
if (*_F1 < *_F2)
++_F1;
else if (*_F2 < *_F1)
++_F2;
else
*_X++ = *_F1++, ++_F2;
return (_X); }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
文盲叔
2008-12-26 · TA获得超过3779个赞
知道小有建树答主
回答量:705
采纳率:0%
帮助的人:675万
展开全部
#include "stdafx.h"
#include<iostream>
using namespace std;

void main()
{
int a[] = {1,3,5,8,9}; //第一个集合
int b[] = {2,3,6,8,9,15};//第二个集合
for (int i = 0;i < 5;i ++)//把第一个集合里的数一个一个拿出来
{
for (int j = 0;j < 6; j++)//和第二个集合里的每一个数比较
{
if (a[i] == b[j])//如果相等
{
cout<<a[i]<<" ";//就输出
break;//然后跳出一次循环,以免在第二个集合里找到两个和第一个集合里某一元素相同的值
}
}
}
cout<<endl;//最后提个行,比较好看~~
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友61f65e3
2008-12-26 · 超过24用户采纳过TA的回答
知道答主
回答量:67
采纳率:100%
帮助的人:54.8万
展开全部
如果只解决特定的这个集合,两个方法都可以。

但是对于通用性,

用set的方法好像不能处理,像

{1, 1, 2, 4, 5, 6, 9}

{1, 1, 3, 4, 5, 7, 9}

这种情况吧,

交集是{1, 1, 4, 5, 9}

用set则不能得到这个结果。

用两层循环肯定是可以达到通用性的,感觉也只能这样。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式