数组进行****数据归并

用了3个数组,结构都将是具有一定顺序的,比如我的是:非递减的!

用i, j做指针下标,进行移动!

注意判断条件及剩余数据,注意处理完整性!

#include <iostream>
#include <stdio.h>
#include <string.h>

using namespace std;

int a[100];
int b[100];
int c[200], e=0;

int main()
{
    int i, j;
    int n, m;

    scanf("%d %d", &n, &m );
    for(i=0; i<n; i++)
    {
        scanf("%d", &a[i] );
    }
    for(j=0; j<m; j++)
    {
        scanf("%d", &b[j] );
    }

    i = 0;
    j = 0;

    while(i<n && j<m )
    {
        if(a[i] <= b[j] )
        {
            c[e++] = a[i] ;
            i++;
        }
        else
        {
            c[e++] = b[j];
            j++;
        }
    }
    if(i==n && j<m)
    {
        while(j<m)
        {
            c[e++] = b[j];
            j++;
        }
    }
    else if(j==m && i<n)
    {
        while(i<n)
        {
            c[e++] = a[i] ;
            i++;
        }
    }

    for(i=0; i<e; i++)
    {
        if(i==0)
            printf("%d", c[0] );
        else
            printf(" %d", c[i] );
    }
    printf("
");
    return 0;
}
原文地址:https://www.cnblogs.com/yspworld/p/3771076.html