题解 | #有序序列合并#
有序序列合并
https://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897
#include <stdio.h> int main() { int m = 0; int n = 0; scanf("%d %d",&m,&n); //输入两个正整数的值m n int arr1[1000] = {0}; int arr2[1000] = {0}; for (int i = 0;i < m;i++) { scanf("%d",&arr1[i]); } for (int i = 0;i < n;i++) { scanf("%d",&arr2[i]); } //创建数组并完成数组的输入 int i = 0;//遍历第一个数组 int j = 0;//遍历第二个数组 while (i < m && j < n) { if (arr1[i] < arr2[j])//拿arr1中的元素逐个与arr2中的第一个元素比较,小的输出在前 { printf("%d ",arr1[i]); i++; } else { printf("%d ",arr2[j]);//如果arr2中的数字小就输出arr2 j++; } } //判断尚未遍历完的数组是否需要打印输出 while (i < m) { printf("%d ",arr1[i]); i++; } //打印第一个数组剩余数 while (j < n) { printf("%d ",arr2[j]); j++; } //打印第二个数组剩余数 return 0; }