编写程序,依次输⼊两个有序(升序)列表,然后把它们合并成⼀个新的有序(升序)列表,最后显示合并后的新列表。输出的数字之间⽤⼀个空格分隔。
注意,输⼊的第⼀个数字表示列表中元素的个数。该数字不是列表的⼀部分。
• 测试⽤例
• 输⼊:5 1 5 16 61 123
4 2 4 5 6
• 输出:1 2 4 5 5 6 16 61 123
供参考:
#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
c[k++] = a[i++];
}
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;
}