#include<iostream>
#include<fstream>
using namespace std;
double *f; //系数
double **xy; //节点数组
int n; //节点个数
double ff(double **xx,int m)
{
//m=sizeof(xx)/sizeof(xx[0]); 求xx数组的行数
if(m==2)
{
return (xx[m-1][1]-xx[m-2][1])/(xx[m-1][0]-xx[m-2][0]);
}
else
{
double **xxfore; //xx数组的前m-1个元素组成的数组
double **xxlast; //xx数组的后m-1个元素组成的数组
xxfore=(double **)new double*[m-1];
xxlast=(double **)new double*[m-1];
for(int i=0;i<m-1;i++)
{
xxfore[i]=new double[2];
}
for(int i=0;i<m-1;i++)
{
xxlast[i]=new double[2];
}
for(int i=0;i<m-1;i++)
{
xxfore[i][0]=xx[i][0];
xxfore[i][1]=xx[i][1];
xxlast[i][0]=xx[i+1][0];
xxlast[i][1]=xx[i+1][1];
}
return (ff(xxlast,m-1)-ff(xxfore,m-1))/(xxlast[m-2][0]-xxlast[0][0]);
}
}
void main()
{
cout<<"请输入节点的个数"<<endl;
cin>>n;
xy=(double **)new double*[n];
for(int i=0;i<n;i++)
{
xy[i]=new double[2];
}
ifstream data("data.dat"); //读取数据文件
int k=0;
while(!data.eof())
{
data>>xy[k][0]>>xy[k][1]; //将文件中的数据读入数组
}
data.close(); //关闭数据文件
for(int j=n;j!=0;j--)
{
cout<<ff(xy,j)<<endl;
}
}