代码实例
cs
int main()
{
int n = 0;
int m = 0;
scanf("%d %d", &n, &m);
//n输入第一个升序数组中的元素个数
//m输入第二个升序数组中的元素个数
//创建数组
//arr1为n对应的数组
int arr1[1000];
//arr2为m对应的数组
int arr2[1000];
//arr3为数组1与数组2结合后的数组
int arr3[2000];
int i = 0;
//输入数组1和数组2的元素
for (i = 0; i < n; i++)
{
scanf("%d", &arr1[i]);
}
for (i = 0; i < m; i++)
{
scanf("%d", &arr2[i]);
}
i = 0;
int j = 0;
int k = 0;
//只要其中有一个不满足条件的,就跳出循环
//那剩下来的那就是元素个数相对与那一个过大的数组
while (i < n && j < m)
{
if (arr1[i] <= arr2[j])
{
arr3[k++] = arr1[i++];
}
else
{
arr3[k++] = arr2[j++];
}
}
//判断n和m是否有剩余元素
//有的话,都给arr3。
//因为他们都是升序数组,所以直接赋值就ok
while (i < n)
{
arr3[k++] = arr1[i++];
}
while (j < m)
{
arr3[k++] = arr2[j++];
}
//遍历arr3的数组,即是结合后的升序数组
for (i = 0; i < n + m; i++)
{
printf("%d " ,arr3[i]);
}
return 0;
}
运行结果;