怎么将两个一维数组的元素排序好放到另一个一维数组里

img


还有题目里让我定义常量M和N,又让我定义数组a[M]和b[N],这样会报错啊,数组不是不能是常量的吗

#include <iostream>
using namespace std;
const int M = 7;
const int N = 9;
void merge(int a[], int b[], int* c) //两个有序数组的归并
{
    int i = 0, j = 0, k = 0;
    while (i < M && j < N)
    {
        if (a[i] <= b[j]) c[k++] = a[i++];
        else c[k++] = b[j++];
    }
    while (i < M) c[k++] = a[i++];
    while (j < N) c[k++] = b[j++];
}

int main()
{
    int a[M] = {4, 9, 13, 25, 41, 78, 82};
    int b[N] = {3, 7, 17, 25, 45, 66, 73, 85, 99};
    cout << "数组a: ";
    for (int i = 0; i < M; i++) cout << a[i] << " ";
    cout << "\n数组b: ";
    for (int i = 0; i < N; i++) cout << b[i] << " ";
    int c[M + N] = {0};
    merge(a,b,c);
    cout << "\n数组c: ";
    for (int i = 0; i < M + N; i++) cout << c[i] << " ";
    return 0;
}

img

符号常量是用#define去定义,你是不是跟const搞混了