原题链接:蓝桥杯算法训练VIP-集合运算
向楼上或楼下大神看齐~
参考代码:
#include<iostream> #include<algorithm> #include<cstring> using namespace std ; int main() { int n,m,a[1050],b[1050],c[2050] ; cin>>n ; for(int i=1;i<=n;i++) { cin>>a[i] ; } cin>>m ; for(int i=1;i<=m;i++) { cin>>b[i] ; } memset(c,0,sizeof(c)) ; //交集 int x=0 ; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(a[i]==b[j]) { c[++x]=a[i] ; } } } sort(c+1,c+1+x) ; for(int i=1;i<=x;i++) { if(c[i]==c[i+1]) { continue ; } else { cout<<c[i]<<" " ; } } cout<<endl ; //并集 x=0 ; memset(c,0,sizeof(c)) ; for(int i=1;i<=n;i++) { c[++x]=a[i] ; } for(int i=1;i<=m;i++) { c[++x]=b[i] ; } sort(c+1,c+1+n+m) ; for(int i=1;i<=n+m;i++) { if(c[i]==c[i+1]) { continue ; } else { cout<<c[i]<<" " ; } } cout<<endl ; //补集 x=0 ; int first[1050] ; memset(c,0,sizeof(c)) ; memset(first,0,sizeof(first)) ; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(a[i]==b[j]) { first[i]=1 ; } } } for(int i=1;i<=n;i++) { if(first[i]==0) { c[++x]=a[i] ; } } sort(c+1,c+1+x) ; for(int i=1;i<=x;i++) { cout<<c[i]<<" " ; } cout<<endl ; return 0 ; }
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复