高分悬赏!!!请高手用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
谢谢~~~谢谢大家!!
但是前面几个对我有点复杂,不是很理解。只有采纳的这个简单。
但是还是很感谢大家~~~~~谢谢!! 展开
谢谢大家帮忙了~~~~!!
QQ:359388179
谢谢~~~谢谢大家!!
但是前面几个对我有点复杂,不是很理解。只有采纳的这个简单。
但是还是很感谢大家~~~~~谢谢!! 展开
4个回答
展开全部
#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;
}
要是只是求你给的两个集合的交集的话,这样就已经足够了!不过这其实还是可以实现通用的,既然你没问,那也就算了!呵呵!
第一次答题,支持一个!
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;
}
要是只是求你给的两个集合的交集的话,这样就已经足够了!不过这其实还是可以实现通用的,既然你没问,那也就算了!呵呵!
第一次答题,支持一个!
展开全部
#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); }
#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); }
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#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;//最后提个行,比较好看~~
}
#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;//最后提个行,比较好看~~
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果只解决特定的这个集合,两个方法都可以。
但是对于通用性,
用set的方法好像不能处理,像
{1, 1, 2, 4, 5, 6, 9}
{1, 1, 3, 4, 5, 7, 9}
这种情况吧,
交集是{1, 1, 4, 5, 9}
用set则不能得到这个结果。
用两层循环肯定是可以达到通用性的,感觉也只能这样。
但是对于通用性,
用set的方法好像不能处理,像
{1, 1, 2, 4, 5, 6, 9}
{1, 1, 3, 4, 5, 7, 9}
这种情况吧,
交集是{1, 1, 4, 5, 9}
用set则不能得到这个结果。
用两层循环肯定是可以达到通用性的,感觉也只能这样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询