#include <stdio.h>

int main() { int a[20], b[20], c[40]; // 定义三个数组 int m, n, i, j, k;

scanf('%d %d', &m, &n); // 输入两组整数的个数

for (i = 0; i < m; i++) { // 输入第一组整数
    scanf('%d', &a[i]);
}

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++] = a[i++];
    } else if (a[i] > b[j]) {
        c[k++] = b[j++];
    } else { // 如果两个数相等,则放入任意一个数,并将两个数组的下标都加1
        c[k++] = a[i++];
        j++;
    }
}

while (i < m) { // 将第一组剩余的数放入新数组中
    c[k++] = a[i++];
}

while (j < n) { // 将第二组剩余的数放入新数组中
    c[k++] = b[j++];
}

// 按从小到大顺序输出合并后的整数集
for (i = 0; i < k; i++) {
    printf('%d ', c[i]);
}

return 0;

}


原文地址: https://www.cveoy.top/t/topic/oQTv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录