题解 | #有序序列合并#

有序序列合并

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;
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务