请问如何将线性插值算法写成c语言程序,

使用interpolation
在给定的数组arr[]中,寻找x点,对应的区间,例如[xi,xi+1],据此进行多项式插值。例如:只利用xi,xi+1,yi,yi+1,两点进行线性插值。

如果在(X1, Y1)和(X2, Y2)之间插入N个点:
X和Y是存储插值的数组,那么:


# include<iostream>
using namespace std;
int main()
{
    float X1, X2, Y1, Y2;
    cin >> X1 >> X2 >> Y1 >> Y2;
    int N;
    cin >> N;
    float *X = new float[N];
    float *Y = new float[N];
    for (int i = 1; i <= N; ++i)
    {
        X[i - 1] = (X2 * i + X1 * (N + 1 - i)) / (N + 1);
        Y[i - 1] = (Y2 * i + Y1 * (N + 1 - i)) / (N + 1);
    }

    for (int i = 0; i < N; ++i)
    {
        cout << X[i] << " " ;
    }
    cout << endl;
    for (int i = 0; i < N; ++i)
    {
        cout << Y[i] << " " ;
    }
    cout << endl;

    //最后释放X和Y
    delete[] X;
    delete[] Y;

    system("pause");

    return 0;
}

img