使用c语言有默认代码应该怎么写

给定一串递增数列,找到其中两个不同的数字 a[i] 和 a[j],使得a[i] + a[j] = k,并输出较小的那个数
如果有组a[i] 和 a[j] 满足条件,则输出其中数值最小的数,如果没有找到,输出-1

输入
输入为一串递增数组 a 和一个正整数 k,其中
1 <= a.length <= 10^5
1 <= a[i] <= 10^6
1 <= k <= 10^6

输出
输出为一个整数,表示在递增数组 a 中找到的两个相加和等于 k中较小的那个数,如果找到多组这样的数,输出值最小的那个数。
没有找到输出 -1

输入样例 1
a = [1, 2, 4, 8, 10], k = 12
输出样例 1
2
解释:
有 2 + 10 = 12 和 4 + 8 = 12,
其中最小的数为 2

//n表示数组a的长度
int solve(int* a, int n, int k) {
}


#define N 10*10*10*10*10
int solve(int* a, int n, int k)
{
    int c[N],s=0;
    for (int i = 0; i < n/2+1; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (a[i] + a[j] == k)
            {
                c[++s] = a[i]<a[j]?a[i]:a[j];
                break;
            }
        }
    }
    if (s != 0)
        return c[1];
    else
        return -1;
}