给定2个集合A和B,请你计算A和B 这2个集合的并集?
Input
输入数据有1组,第1行为n,代表集合A 的元素个数;第2行为集合A的这n个元素;第3行为m,代表集合B的元素个数;第4行为集合B的m个元素。
Output
输出共1行,为这2个集合的并。(注意:集合中的数字是有序的,升序),题目中所有数字都是大于0并且小于100的!
Sample Input
4
1 2 3 4
4
3 4 5 6
Sample Output
1 2 3 4 5 6
给定2个集合A和B,请你计算A和B 这2个集合的并集?
Input
输入数据有1组,第1行为n,代表集合A 的元素个数;第2行为集合A的这n个元素;第3行为m,代表集合B的元素个数;第4行为集合B的m个元素。
Output
输出共1行,为这2个集合的并。(注意:集合中的数字是有序的,升序),题目中所有数字都是大于0并且小于100的!
Sample Input
4
1 2 3 4
4
3 4 5 6
Sample Output
1 2 3 4 5 6
供参考:
#include<stdio.h>
#define N 20
int main()
{
int a[N],b[N],c[2*N],m,n,i,j,k;
scanf("%d",&m);
for(i=0;i<m;i++) //输入第一组整数数据
scanf("%d",&a[i]);
scanf("%d", &n);
for(i=0;i<n;i++) //输入第二组整数数据
scanf("%d",&b[i]);
i = 0; j = 0; k = 0;
while(i < m && j < n)
{
if(a[i] > b[j])
c[k++] = b[j++];
else if(a[i] < b[j])
c[k++] = a[i++];
else{
c[k++] = a[i++];
j++;
}
}
while(j < n) c[k++] = b[j++];
while(i < m) c[k++] = a[i++];
for(i=0;i<k;i++)
printf("%4d",c[i]);
return 0;
}