#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
float x[10],y[10][10],sum,p,u,temp,temp1,l=0;
int i,n,j,k=0,f,m;
float fact(int);
clrscr();
printf("\nhow many record you will be enter: ");
scanf("%d",&n);
for(i=0; i<n; i++)
{
printf("\n\nenter the value of x%d: ",i);
scanf("%f",&x[i]);
printf("\n\nenter the value of f(x%d): ",i);
scanf("%f",&y[k][i]);
}
printf("\n\nEnter X for finding f(x): ");
scanf("%f",&p);
for(i=1;i<n;i++)
{
k=i;
for(j=0;j<n-i;j++)
{
y[i][j]=(y[i-1][j+1]-y[i-1][j])/(x[k]-x[j]);
k++;
}
}
printf("\n_______________________________________________________\n");
printf("\n x(i)\t y(i) y1(i) y2(i) y3(i) y4(i)");
printf("\n_______________________________________________________\n");
for(i=0;i<n;i++)
{
printf("\n %.3f",x[i]);
for(j=0;j<n-i;j++)
{
printf(" ");
printf(" %.3f",y[j][i]);
}
printf("\n");
}
i=0;
do
{
if(x[i]<p && p<x[i+1])
k=1;
else
i++;
}while(k != 1);
f=i;
n=n-f;
sum=0;
for(i=1;i<n;i++)
{
k=f;
temp=1,temp1=0;
for(j=1;j<=i && l==1;j++)
{
temp1 = temp1 + (p - x[k]);
temp=temp1;
k++;
}
l=1;
printf("\n%.3f",y[i][f]);
sum = sum + temp*(y[i][f]);
}
printf("\n\n f(%.2f) = %f ",p,sum);
getch();
}
/*
______________________________________
OUT PUT
______________________________________
how many record you will be enter: 5
enter the value of x0: 10
enter the value of f(x0): 12
enter the value of x1: 12
enter the value of f(x1): 15
enter the value of x2: 16
enter the value of f(x2): 20
enter the value of x3: 17
enter the value of f(x3): 22
enter the value of x4: 22
enter the value of f(x4): 32
Enter X for finding f(x): 14
_______________________________________________________
x(i) y(i) y1(i) y2(i) y3(i) y4(i)
_______________________________________________________
10.000 12.000 1.500 -0.042 0.027 -0.004
12.000 15.000 1.250 0.150 -0.015
16.000 20.000 2.000 0.000
17.000 22.000 2.000
22.000 32.000
f(14.00) = 1.295000
*/