请问这个代码该怎么写?

数据合并
题目描述
将两个从小到大排列的一维数组 (维长分别为 m,,n , 其中 m,n≤100)仍按从小到大的排列顺序合并到一个新的一维数组中,输出新的数组.

输入描述
第 1 行一个正整数 m , 表示第一个要合并的一维数组中的元素个数

第 2 行一个正整数 n , 表示第二个要合并的一维数组中的元素个数

第 3 行输入 m 个整数 (每个数用空格分开) , 表示第一个数组元素的值.

第 4 行输入 n 个整数 (每个数用空格分开) , 表示第二个数组元素的值.

输出描述
一行,表示合并后的数据,共 m+n 个数

样例输入
3
4
1 3 5
2 4 6 8
样例输出
1 2 3 4 5 6 8

图片说明

代码如下,请试一下:

#include<stdio.h>
#include<stdlib.h>
void Merge(int*array1, int size1, int* array2, int size2, int *pTemp)
{
    int index1 = 0;
    int index2 = 0;
    int index = 0;
    while (index1 < size1&&index2 < size2)//循环到其中一个数组为空,就退出循环
    {
        if (array1[index1] < array2[index2])//如果数组1的元素小于数组2的元素,就把数组1的元素放到新数组
            pTemp[index++] = array1[index1++];
        else
            pTemp[index++] = array2[index2++];//否则就把数组2的元素放到新数组
    }

    while (index1 < size1)//退出循环后,如果数组1的元素未空,就把数组1的元素都放到新数组中,因为数组1是有序的,所以不用排序
    {
        pTemp[index++] = array1[index1++];
    }

    while (index2 < size2)//退出循环后,如果数组2的元素未空,就把数组2的元素都放到新数组中,因为数组2是有序的,所以不用排序
    {
        pTemp[index++] = array2[index2++];
    }

}

int main()
{
    int *a, *b, *c, i, n, m;
    scanf("%d%d", &m, &n);
    c = (int*)malloc(sizeof(int)*(m + n));
    a = (int*)malloc(sizeof(int)*(m));
    b = (int*)malloc(sizeof(int)*(n));
    for (i = 0; i < m; i++)
    {
        scanf("%d", &a[i]);
    }
    for (i = 0; i < n; i++)
    {
        scanf("%d", &b[i]);
    }

    Merge(a, m, b, n, c);

    for (i = 0; i < m+n; i++)
    {
        printf("%d ", c[i]);
    }

    free(a);
    free(b);
    free(c);
    return 0;
}
#include <iostream>
using namespace std;
int main()
{
    int m=0;
    int n=0;
    int num=0;
    int q=0;
    int a[100];
    int b[100];
    int c[200];
    int i=0;
    int j=0;
///////////////初始化0
    for( i=0;i<100;i++)
    {
        a[i]=0;
        b[i]=0;
    }

    for( i=0;i<200;i++)
    {
        c[i]=0;
    }
////////////输入元素
    cout << "元素个数:" << endl;
    cin >> m;

    cout << "元素个数:" << endl;
    cin >> n;

    num=m+n;

    for(i=0;i<m;i++)
    {
        cin>>a[i];
    }

    for(j=0;j<n;j++)
    {
        cin>>b[j];
    }

////////////a[i]和b[i]联合为c[i]
    for(i=0;i<m;i++)
    {
        c[i]=a[i];
    }

    for(i=0;i<n;i++)
    {
        c[m+i]=b[i];
    }



////////////////排序
    for(i=0;i<num;i++)
    {
        for(j=i+1;j<num;j++)
        {
            if(c[i]<=c[j])
            {
                c[i]=c[i];
            }
            else
            {
                q=c[i];
                c[i]=c[j];
                c[j]=q;
            }
        }
    }


////////////////////////////输出元素
    for(i=0;i<num;i++)
    {
        cout<<c[i]<<" ";
    }

    return 0;
}


我不是回答过你了么
https://ask.csdn.net/questions/1064304

如果有问题可以追问。你再发一个一样的问题,还是不知道是你什么地方不理解还是我什么地方没有写对