ex7.txtには下のように数字が入っています
4 1
2 5
6 0
3 2
1 5
#include<stdio.h>
#include<math.h>
#define max 100
double lag(int , int , double , double*);
int main(void)
{
int i,n;
double x,y;
double datax[max];
double datay[max];
FILE *input;
FILE *output;
input=fopen("ex7.txt","r");
output=fopen("ex7ans.txt","w");
for(i=0;i<max;i++){
datax[i]=0.0;
datay[i]=0.0;
}
i=0;
while(fscanf(input,"%lf%lf",&datax[i],&datay[i])!=EOF){
i++;
n=i;
}
for(x=datax[0];x<datax[n-1];x+=0.1){
y=0.0;
for(i=0;i<n;i++){
y=0.0;
y+=datay[i]*lag(i,n,x,datax);
}
fprintf(output,"%f %f\n",x,y);
}
fclose(input);
fclose(output);
return 0;
}
double lag(int i,int n,double x,double datax[]){
int j;
double ans=1.0;
for(j=0;j<n;j++){
if(i!=j){
ans*=(x-datax[j])/(datax[i]-datax[j]);
}
}
return 0;
}