#include <stdio.h>
int k,a;
float x1,x2;
float m[10],n[10],w1[10],w2[10],f[10][10];
void freturn(float m[],float n[]){//求F的函数;,利用2位数组来做
int i;
for(i=0;i<k;i++){
f[0][i]=n[i];
}
for(i=1;i<k;i++){
f[1][i]=(n[i]-n[0])/(m[i]-m[0]);
}
for(i=2;i<k;i++){//a=1;b=1
for(a=2;a<=i;a++){
f[a][i]=(f[a-1][i]-f[a-1][a-1])/(m[i]-m[a-1]);
}
}
for(i=0;i<k;i++){//a=1;b=1
for(a=0;a<=i;a++){
printf("%f ",f[a][i]);
}printf("\n");
}
}
void main()
{
float m[10],n[10];
printf("请输入已知值的个数:\n");
scanf("%d",&k);
for(a=0;a<k;a++){
printf("请输入X%d ",a);
scanf("%f",&m[a]);
printf("请输入Y%d ",a);
scanf("%f",&n[a]);
}
printf("输入两个x的值\n");
scanf("%f %f",&x1,&x2);
for(a=1;a<k;a++){
w1[0]=1;
w1[a]=w1[a-1]*(x1-m[a-1]);
}
for(a=1;a<k;a++){
w2[0]=1;
w2[a]=w2[a-1]*(x2-m[a-1]);
}
float N1=0,N2=0;
freturn(m,n);
for(a=0;a<=k;a++){
N1=N1+w1[a]*f[a][a];
N2=N2+w2[a]*f[a][a];
}
printf("N1=%f\nN2=%f\n",N1,N2);
}