#include <stdio.h>

int main() {
    int a[20], b[20], c[40]; // 定义两个数组和一个合并后的数组
    int m, n, i, j, k;

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

    printf("输入第二组整数个数:");
    scanf("%d", &n);
    printf("输入第二组整数:");
    for (i = 0; i < n; i++) {
        scanf("%d", &b[i]);
    }

    // 合并两组整数
    i = j = 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 {
            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++) {
        for (j = i + 1; j < k; j++) {
            if (c[i] == c[j]) {
                for (int l = j; l < k - 1; l++) {
                    c[l] = c[l + 1];
                }
                k--;
                j--;
            }
        }
    }

    // 排序
    for (i = 0; i < k - 1; i++) {
        for (j = i + 1; j < k; j++) {
            if (c[i] > c[j]) {
                int temp = c[i];
                c[i] = c[j];
                c[j] = temp;
            }
        }
    }

    // 输出结果
    printf("合并去重后的整数为:");
    for (i = 0; i < k; i++) {
        printf("%d ", c[i]);
    }
    printf("\n");
    return 0;
}

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

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