题解 | #有序序列合并#
有序序列合并
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;
}
