有没有谁可以用C语言写下这个代码

随机输入两组整数,输入个数不固定(少于20个),分别将两组数排序,然后将两组数合并成一组有序的数(不能合并后再排序)。


#include <stdio.h>


void getArr(int a[], int len);
void printArr(int arr[], int len);
void swap(int arr[], int p1, int p2);
void sortArr(int arr[], int len);

void getArr(int a[], int len)
{
    for (int i = 0; i < len; ++i)
    {
        printf("请输入第 %d 个数据:", (i + 1));
        scanf("%d", &a[i]);
    }
}

void printArr(int arr[], int len) {
    printf("输出数组");
    for (int i = 0; i < len; ++i)
    {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

void swap(int arr[], int p1, int p2) {
    int temp = arr[p1];
    arr[p1] = arr[p2];
    arr[p2] = temp;
}


void sortArr(int arr[], int len) {
    int flag = 0;
    int k = 0, l = len - 1;
    while (k <= l) {
        for (int m = k; m < l; ++m) {
            if (arr[m] > arr[m + 1]) {
                swap(arr, m, m + 1);
                flag = 1;
            }
        }
        --l;
        for (int m = l; m > k; --m ) {
            if (arr[m] < arr[m - 1]) {
                swap(arr, m, m - 1);
                flag = 1;
            }
        }
        ++k;
        if (!flag) {
            break;
        }
    }
}

int main1() {
    int arr[20] = {3, 4, 0, 2};
    sortArr(arr, 4);
    printArr(arr, 4);
    return 0;
}
int main()
{
    int a[20];
    int b[20];
    int c[40];
    int lenA = 0, lenB = 0;
    printf("请输入第一组输入个数:");
    scanf("%d", &lenA);
    getArr(a, lenA);
    printf("请输入第二组输入个数:");
    scanf("%d", &lenB);
    getArr(b, lenB);
    sortArr(a, lenA);
    sortArr(b, lenB);
    int m = 0, n = 0;
    for (int i = 0; i < lenA + lenB; ++i)
    {
        if (m < lenA && n < lenB && a[m] <= b[n]) {
            c[i] = a[m];
            ++m;
        } else if (m < lenA && n < lenB && a[m] > b[n] ) {
            c[i] = b[n];
            ++n;
        } else if(m >= lenA && n < lenB) {
            c[i] = b[n];
            ++n;
        } else if (m < lenA && n >= lenB) {
            c[i] = a[m];
            ++m;
        } else {
            break;
        }
    }
    printArr(a, lenA);
    printArr(b, lenB);
    printArr(c, lenA + lenB);
    return 0;
}