求解答,用c语言解答这个问题

建两个整型数组将其合并,对他们进行降序排序,去掉相同项,
输出处理过后的数组。
首先第一行输入第一个数组中的长度 n ,然后输入 n 个整型数;然后在第二行输入第二个数组中的长度 m ,然后输入 m 个整型数;
输出降序排列,并且去掉多余元素后的数组。

供参考:

#include <stdio.h>
#define N 30
int main()
{
    int i, j, k, t, n, m, a[N], b[N], c[N + N];

    scanf("%d", &n);  //输入n,及 n 个整数
    for (i = 0; i < n; i++) {
        scanf("%d", &a[i]);
        c[i] = a[i];
    }
    scanf("%d", &m); //输入m,及 m 个整数
    for (k = i, i = 0; i < m; i++) {
        scanf("%d", &b[i]);
        c[k++] = b[i];
    }
    for (i = k - 1; i > 0; i--) //降序排序
    {
        for (j = 0; j < i; j++)
        {
            if (c[j] < c[j + 1])
                t = c[j], c[j] = c[j + 1], c[j + 1] = t;
        }
    }
    for (i = 0, j = 0, t = c[i]; i < k; i++) //去重
    {
        if (c[i] - t || i == 0)
            c[j++] = c[i];
        t = c[j - 1];
    }
    for (i = 0; i < j; i++)
        printf("%d ", c[i]);
    return 0;
}