一、知识点
合并整型数组目前有两种方法
合并数组并不一定需要真正的合并
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;
}