#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; } }