线性插值方法完成求解

img


根据压力传感器数据集,应用线性插值方法完成求解,我不知道错哪了,快帮帮我吧

C语言代码块是需要用{}括号括起来的,不是Python那样依靠缩进。

img

#include <stdio.h>

int main()
{
    double x[] = {0.2, 0.4, 0.6, 0.8, 1.0};
    double y[] = {191.22, 383.42, 576.48, 770.28, 965.08};
    double data = 0;
    double x1 = 0;
    double y1 = 0;
    double x2 = 0;
    double y2 = 0;
    scanf("%lf", &data);
    if (data < x[0] || data > x[4])
    {
        printf("The input data must be in the range [%lf, %lf].\n", x[0], x[4]);
        return 1;
    }
    for (int i = 0; i < 4; i++)
    {
        if (x[i] <= data && data <= x[i + 1])
        {
            x1 = x[i];
            y1 = y[i];
            x2 = x[i + 1];
            y2 = y[i + 1];
            break;
        }
    }
    double dy = y2 - y1;
    double dx = x2 - x1;
    printf("%.2lf\n", y1 + dy / dx * (data - x1));
    return 0;
}