#include<stdio.h>
#define N 3
int main()
{
double X[N],Y[N],x,y=0.0,L[N];
int i=0,j=0;
printf("请输入已知点x和y:\n");
for(i=0;i<N;i++)
{
printf("第%d个点x:",i+1);
scanf("%lf",&X[i]);
printf("y:");
scanf("%lf",&Y[i]);
}
//输入要求的点x
printf("请输入x:");
scanf("%lf",&x);
printf("\n\n");
for(i=0;i<N;i++)//分步求L[i]
{
L[i]=1.0;
for(j=0;j<N;j++)
{
if(i!=j)
L[i]*=((x-X[j])/(X[i]-X[j]));
else continue;
}
L[i]*=Y[i];
printf("L[%d]=%lf\n",i,L[i]);
y+=L[i];//把每次求得的L[i]相加可得最终结果,即所求y。
}
printf("\n\n");
printf("y=%lf\n",y);
return 0;
}