{A} + {B}

Problem Description
给你两个集合,要求{A} + {B}.
注:同一个集合中不会有两个相同的元素.
 
Input
每组输入数据分为三行,第一行有两个数字n,m(0<n,m<=10000),分别表示集合A和集合B的元素个数.后两行分别表示集合A和集合B.每个元素为不超出int范围的整数,每个元素之间有一个空格隔开.
 
Output
针对每组数据输出一行数据,表示合并后的集合,要求从小到大输出,每个元素之间有一个空格隔开.
 
Sample Input
1 2
1
2 3
1 2
1
1 2
 
Sample Output
1 2 3
1 2
 
 1 #include <stdio.h>
 2 
 3 int main(){
 4     int array[20001];
 5     int n;
 6     int m;
 7     int i;
 8     int j;
 9     int k;
10     int number;
11     int flag;
12     int temp;
13 
14     while(scanf("%d%d",&n,&m)!=EOF){
15         for(i=0;i<n;i++){
16             scanf("%d",&number);
17             array[i]=number;
18         }
19 
20         k=n;
21         for(i=0;i<m;i++){
22             scanf("%d",&number);
23 
24             flag=0;
25             for(j=0;j<k;j++){
26                 if(number==array[j]){
27                     flag=1;
28                     break;
29                 }
30             }
31 
32             if(flag==0){
33                 array[k]=number;
34                 k++;
35             }
36         }
37 
38         for(i=0;i<k-1;i++){
39             for(j=i+1;j<k;j++){
40                 if(array[i]>array[j]){
41                     temp=array[i];
42                     array[i]=array[j];
43                     array[j]=temp;
44                 }
45             }
46         }
47 
48         for(i=0;i<k;i++)
49             if(i!=0)
50                 printf(" %d",array[i]);
51 
52             else
53                 printf("%d",array[i]);
54 
55         printf("
");
56     }
57     
58 
59     return 0;
60 }
 
原文地址:https://www.cnblogs.com/zqxLonely/p/4085132.html