这题将两个有序数组进行逐一进行比较并打印即可
#include <stdio.h>
int main()
{
int n,m;
int i,j;
//i,j分别对应两个数组
int arr1[1000]={0};
int arr2[1000]={0};
scanf("%d %d\n",&n,&m);
for(i=0;i<n;i++)
{
scanf("%d ",&arr1[i]);
}
for(i=0;i<m;i++)
{
scanf("%d ",&arr2[i]);
}
//传入数据
i=0;
j=0;
while(i<n&&j<m)//导入循环,当i和j其中一个比n和m大时跳出循环
{
if(arr1[i]<arr2[j])
{
printf("%d ",arr1[i]);
i++;
//逐一进行比较,因为都是有序数列,数组1中可以一个一个与数组2中进行比较
}
else
{
printf("%d ",arr2[j]);
j++;
//亦然
}
}
//当跳出循环之后,i与j中总会有一个未到n或m
//此时需要因为一个数组最大的已经小于另一个数组,所以后面的数组直接打印即可
if(i==n&&j<m)
{
for(;j<m;j++)
{
printf("%d ",arr2[j]);
}
}
else
{
for(;i<n;i++)
{
printf("%d ",arr1[i]);
}
}
return 0;
}