每组输入数据分为三行,第一行有两个数字n,m分别表示集合A和集合B的元素个数.后两行分别表示集合A和集合B.每个元素为不超出int范围的整数,每个元素之间有一个空格隔开.
输入形式:
1 2
1
2 3
1 2
1
1 2
输出形式:
1 2 3
1 2
#include <stdio.h>
int main()
{ int n,m,temp;
int i,j;
int c[20];
while(scanf("%d %d ",&n,&m)!= EOF)//多组输入的方式,大家看代码就会理解的。
{
for(i=0;i<n;i++)
{
scanf("%d",&c[i]);
}
for(j=n;j<n+m;j++)
{
scanf("%d",&c[j]);
}//看出什么了吗?,对!就是把c数组”分开“输入!
for(i=0;i<n+m;i++)
{
for(j=0;j<n+m-i;j++)
{
if(c[j]>c[j+1])
{
temp=c[j];
c[j]=c[j+1];
c[j+1]=temp;//利用排序将c数组从小到大放。
}
}
}for(i=0;i<n+m;i++)
{
for(j=i+1;j<n+m;j++)
{
if(c[i]==c[j])
{
for(temp=j;temp<n+m;temp++)
c[temp]=c[temp+1];//使数组元素往前移一位。
j--;//保证能从一个固定的下标往后查找重复元素。
n+m--;//这块就是将数组中重复的元素删除,这是使数组存放量减一
}
}
}
for(i=0;i<n+m;i++)
{
printf("%d ",c[i]);
}printf("\n");
}
return 0;
}