題目描述
上圖算法中,在第8行取得集合B中的元素,然後再在第10行插入到集合A中。你的任務是先輸出集合A和集合B中的元素,每個集合在一行中輸出。然後每次在將集合B中的元素取出插入到集合A尾部後輸出集合A中的元素。當然你的代碼可以和上面的代碼不一樣,只要有相同的輸出即可。
輸入格式
有多組測試數據,每組測試數據佔兩行。第一行是集合A,第一個整數m(0<m<=100)代表集合A起始有m個元素,後面有m個整數,代表A中的元素。第二行是集合B,第一個整數n(0<n<=100)代表集合B起始有n個元素,後面有n個整數,代表B中的元素。每行中整數之間用一個空格隔開。
輸出
每組測試數據輸出n+2行:前兩行分別輸出集合A、集合B中的數據,後面n行是每次從B中取出元素插入到A尾部後的集合A。每行整數之間用一個空格隔開,每組測試數據之間用一行空行隔開。
樣例輸入
5 1 5 2 6 3
3 1 7 9
1 3
2 2 7
4 2 5 1 4
4 1 2 4 5
樣例輸出
1 5 2 6 3
1 7 9
1 5 2 6 3
1 5 2 6 3 7
1 5 2 6 3 7 9
3
2 7
3 2
3 2 7
2 5 1 4
1 2 4 5
2 5 1 4
2 5 1 4
2 5 1 4
2 5 1 4
#include <stdio.h>
int main()
{
int a[200], b[100];
int m, n;
int i, j, d=0;
while(scanf("%d", &m)!= EOF)
{
if(d++)
putchar('\n');
for(i=0;i<m;i++)
scanf("%d", &a[i]);
scanf("%d", &n);
for(i=0;i<n;i++)
scanf("%d", &b[i]);
for(i=0;i<m;i++)
{
if(i)
putchar(' ');
printf("%d", a[i]);
}
putchar('\n');
for(i=0;i<n;i++)
{
if(i)
putchar(' ');
printf("%d", b[i]);
}
putchar('\n');
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
if(b[i]==a[j])
break;
if(j >= m)
{
a[m] = b[i];
m++;
}
for(j=0;j<m;j++)
{
if(j)
putchar(' ');
printf("%d", a[j]);
}
putchar('\n');
}
}
return 0;
}