#include<stdio.h>
#include<math.h>
#define maxsize 50
int main(void)
{
double x[maxsize],y[maxsize],a,b,aa,p,sum;
int i,j,n;
printf("please input a= and b=\n");
scanf("%d %d",&a,&b);
printf("please input n=\n");
scanf("%d",&n);
printf("please input aa=\n");
scanf("%lf",&aa);
printf("please input x[i]= y[i]=\n");
for(i=0;i<n;i++)
scanf("%lf",&x[i],&y[i]);
printf("please input x[j]=\n");
for(j=0;j<n;j++)
scanf("%lf",&x[j]);
if(x[0]>=a&&x[n]<=b)
{
printf("输入错误,请重新输入!\n");
return 0;
}
sum=0;
for(i=0;i<n;i++)
{
p=1;
for(j=0;j<n;j++)
{
if(j!=i)
{
p=p*(aa-x[j])/(x[i]-x[j]);
sum+=p*y[i];
}
}
}
printf("sum=%d",sum);
return 0;
}
你说的应该是这个吧,计算方法里面的,拉格朗日插值