编写程序,依次输⼊两个有序(升序)列表,然后把它们合并成⼀个新的有序 (升序)列表,最后显示合并后的新列表。输出的数字之间⽤⼀个空格分隔。

编写程序,依次输⼊两个有序(升序)列表,然后把它们合并成⼀个新的有序(升序)列表,最后显示合并后的新列表。输出的数字之间⽤⼀个空格分隔。
注意,输⼊的第⼀个数字表示列表中元素的个数。该数字不是列表的⼀部分。
• 测试⽤例
• 输⼊: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;
}

img