描述

题目标题:

将两个整型数组按照升序合并,并且过滤掉重复数组元素。
输出时相邻两数之间没有空格。

输入描述:

输入说明,按下列顺序输入:
1 输入第一个数组的个数
2 输入第一个数组的数值
3 输入第二个数组的个数
4 输入第二个数组的数值

输出描述:

输出合并之后的数组

示例1

输入:
3
1 2 5
4
-1 0 3 2
输出:
-101235
代码部分:
#include<stdio.h>
#include<stdlib.h>//qsort函数头文件
//以下是Senky的代码:
//算法思路:输入的时候就将两个数组合并到一个,再进行升序排序
//先输出首元素,如果后继当前元素和上一个元素相等那么就是多余的,如此确保了唯一性
int cmp(const void* p1, const void* p2) {
    return *(int*)p1 - *(int*)p2; //升序排列
}
int main() {
    int m = 0; //第一个数组元素个数
    int n = 0; //第二个数组元素个数
    int i = 0;//循环变量
    int j = 0;//循环变量
    int num[1000] = {0};//将两个数组合并后的数组
    while (~scanf("%d", &m)) { //第一个数组元素个数
        for (i = 0; i < m; i++) {
            scanf("%d", &num[i]); //输入第一个数组元素
        }
        scanf("%d", &n);//第二个数组元素个数
        for (int j = 0; j < n ; j++) {
            scanf("%d", &num[m + j]); //输入第一个数组元素
        }
        qsort(num, m + n, sizeof(num[0]), cmp);//排序
    }
    printf("%d", num[0]); //输出第一个元素
    for (i = 1; i < m + n; i++) {
        if (num[i] != num[i - 1]) { //如果当前元素与上一个元素不重复
            printf("%d", num[i]); //则将当前元素输出
        }
    }
    return 0;//编辑于2022/10/10
}
总结
①算法思想没什么难度
当前帖子仅供自我精进、学习使用,有不足之处欢迎指正;