求并集(数组)
时间限制: 1S类别: DS:数组与链表->数组
问题描述 :
使用数组编程:
有两个集合,求其并集并输出。
要求:先输入集合A,再输入集合B,然后将B中(不属于集合A)的元素按顺序插入到A的后面(保持在B中的顺序),最后输出集合A(结果)的内容
输入说明 :
第一行输入集合A:
第一个整数m(0<=m<=100),表示集合A共有m个元素,其后有m个整数,表示集合A的元素
第二行输入集合B:
第一个整数n(0<=n<=100),表示集合B共有n个元素,其后有n个整数,表示集合B的元素
输出说明 :
输出集合A和集合B的并集,输出的内容都是整数,数字之间以一个空格分隔。
输入范例 :
4 1 3 5 7
4 2 4 5 8
输出范例 :
1 3 5 7 2 4 8
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a[105],b[105],m,n;
int c[210],k=0;
cin>>m;
int i,j;
for(i=0; i<m; i++)
cin>>a[i];
cin>>n;
for(i=0; i<n; i++)
cin>>b[i];
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
if(a[i]==b[j])
b[j]=100;
}
}
for(i=0; i<m; i++)
{
cout<<a[i];
if(i!=m-1)
cout<<" ";
}
int flag=0;
for(j=0; j<n; j++)
{
if(b[j]!=100)
flag=1;
}
if(flag!=0)
{
cout<<" ";
for(i=0; i<n; i++)
{
if(b[i]!=100)
c[k++]=b[i];
}
for(i=0; i<k; i++)
{
cout<<c[i];
if(i!=k-1)
cout<<" ";
}
}
return 0;
}