一、知识点
合并整型数组目前有两种方法
合并数组并不一定需要真正的合并
1、下意识的方法
对两个整型数组分别排序,然后合并
2、不排序的方法
遍历两个数组,找出最小值,输出最小值。将两个数组中与最小值相等的位置置为超大值
重复以上步骤,直至两个数组中的所有元素都变成了超大值
全部的输出结果就是合并后的升序数组
这种方法并没有真的合并数组
二、题目
1、描述
将两个整型数组按照升序合并,并且过滤掉重复数组元素。
输出时相邻两数之间没有空格。
2、输入
输入说明,按下列顺序输入:
1 输入第一个数组的个数
2 输入第一个数组的数值
3 输入第二个数组的个数
4 输入第二个数组的数值
3、输出
输出合并之后的数组
三、自己写的代码
#include<stdio.h>
#define MAX 2147483647
int main() {
int n, m, i = 0, min;
scanf("%d", &n);
int nums1[n];
for (i = 0; i < n; i++) {
scanf("%d", &nums1[i]);
}
scanf("%d", &m);
int nums2[m];
for (i = 0; i < m; i++) {
scanf("%d", &nums2[i]);
}
while (1) {
min = MAX;
for (i = 0; i < n; i++) {
if (nums1[i] < min) {
min = nums1[i];
}
}
for (i = 0; i < m; i++) {
if (nums2[i] < min) {
min = nums2[i];
}
}
if (min == MAX) {
break;
}
printf("%d", min);
for (i = 0; i < n; i++) {
if (nums1[i] == min) {
nums1[i] = MAX;
}
}
for (i = 0; i < m; i++) {
if (nums2[i] == min) {
nums2[i] = MAX;
}
}
}
printf("\n");
return 0;
}