想问一下这个问题,该怎么搞

使用函数完成以下功能,并得到一个完整的可以运行的程序:
1)定义两个数组,用来表示下列关系表:
水位 库容
112 5656
115 5954
113 5703
110 5500
111 5642
114 5841
2)将两个数组分别按从小到大排序
3)输入任意一个水位,计算对应库容
4)输入任意库容,计算水位
(注:使用插值法计算,比如水位输入112.6,首先查询到112和113米水位
对应的库容5656和5703,然后计算比例=112.6-112=0.6,最后结果就是0.6 * (5703-5656) + 5656)

#include <stdio.h>

void sort(float a[], int n)
{
    for (int i = 0; i < n - 1; i++)
    {
        for (int j = i + 1; j < n; j++)
        {
            if (a[j] < a[i])
            {
                float t = a[i];
                a[i] = a[j];
                a[j] = t;
            }
        }
    }
}

int find(float a[], int n, float x)
{
    for (int i = 0; i < n; i++)
    {
        if (a[i] > x)
            return i - 1;
    }
    return -1;
}

int main()
{
    float levels[6] = {112, 115, 113, 110, 111, 114};
    float capacities[6] = {5656, 5954, 5703, 5500, 5642, 5841};

    sort(levels, 6);
    sort(capacities, 6);

    float level;
    printf("输入水位: ");
    scanf("%f", &level);
    int i = find(levels, 6, level);
    if (i == -1)
    {
        printf("输入的水位超出范围\n");
    }
    else
    {
        float l1 = levels[i];
        float l2 = levels[i + 1];
        float c1 = capacities[i];
        float c2 = capacities[i + 1];
        float c = (level - l1) / (l2 - l1) * (c2 - c1) + c1;
        printf("计算的库容是: %.1f\n", c);
    }

    float capacity;
    printf("输入库容: ");
    scanf("%f", &capacity);
    i = find(capacities, 6, capacity);
    if (i == -1)
    {
        printf("输入的库容超出范围\n");
    }
    else
    {
        float l1 = levels[i];
        float l2 = levels[i + 1];
        float c1 = capacities[i];
        float c2 = capacities[i + 1];
        float l = (capacity - c1) / (c2 - c1) * (l2 - l1) + l1;
        printf("计算的水位是: %.1f\n", l);
    }

    return 0;
}