题解 | #有序序列合并#

有序序列合并

http://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897

#include <stdio.h>

int main()
{
    int m = 0;
    int n = 0;
    int arr1[100] = { 0 };
    int arr2[100] = { 0 };
    int arr3[200] = { 0 };
    //输入
    scanf("%d %d", &n, &m);
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &arr1[i]);
    }
    for (int j = 0; j < m; j++)
    {
        scanf("%d", &arr2[j]);
    }
    //合并
    int i = 0;
    int j = 0;
    int k = 0;
    while (i != n && j != m)
    {
        arr3[k] = (arr1[i] < arr2[j]) ? arr1[i] : arr2[j];
        k++;
        if (arr1[i] < arr2[j])
        {
            i++;
        }
        else
        {
            j++;
        }
    }
    if (i == n)
    {
        for (; j < m; j++)
        {
            arr3[k] = arr2[j];
            k++;
        }
    }
    else if (j == m)
    {
        for (; i < n; i++)
        {
            arr3[k] = arr1[i];
            k++;
        }
    }
    //输出
    for (i = 0; i < m + n; i++)
    {
        printf("%d ", arr3[i]);
    }

    return 0;
}
编程初学者入门训练 文章被收录于专栏

针对编程初学者入门训练130题的代码详解专栏,内附注释方便理解,牛客130题的代码均用C语言实现,方便初学者学习。

全部评论

相关推荐

牛油果甜奶昔:别的先不说,牛客还能内推护士?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务