描述
题目标题:
将两个整型数组按照升序合并,并且过滤掉重复数组元素。
输出时相邻两数之间没有空格。
输入描述:
输入说明,按下列顺序输入:
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 }
总结:
①算法思想没什么难度;
② 当前帖子仅供自我精进、学习使用,有不足之处欢迎指正;