#include<stdio.h> int main(){ int n = 0; int m = 0; int arr1[1000] = {0}; int arr2[1000] = {0}; int arr3[3000] = {0}; //输入n和m scanf("%d %d", &n, &m); int i = 0; int j = 0; //输入两个升序序列 for (i = 0; i < n; i++) { scanf("%d", &arr1[i]); } for (i = 0; i < m; i++) { scanf("%d", &arr2[i]); } //合并有序序列并输出 i = 0; j = 0; int k = 0; while (i < n && j < m) { if (arr1[i] <arr2[j]) { ///拿arr1中的元素逐个与arr2中的第一个元素比较,小的输出在前 //printf("%d ", arr1[i]); arr3[k] = arr1[i]; i++; k++; } else { //printf("%d ", arr2[j]); //如果arr2中小的话输出arr2 arr3[k] = arr2[j]; j++; k++; } } //判断尚未遍历完的数组是否需要打印输出 if (i == n) //for (; j < m; j++) //printf("%d ", arr2[j]); while(j<m){ arr3[k] = arr2[j]; j++; k++; } else //for (; i < n; i++) // printf("%d ", arr1[i]); while(i<n){ arr3[k] = arr1[i]; i++; k++; } for(k = 0;k<m+n;k++){ printf("%d ",arr3[k]); } return 0; }