#include <iostream>
using namespace std;
void main()
{
float **a,x,result;
int n;
float k,b;
void smallest(float **a,int n,float *k,float *b);
cout<<"输入点数:";
cin>>n;
a=new float *[n];
for(int i=0;i<n;i++)
a=new float[2];
cout<<"输入各个点:"<<endl;
for(i=0;i<n;i++)
for(int j=0;j<2;j++)
cin>>a[j];
smallest(a,n,&k,&b);
cout<<"输入自变量的值:";
cin>>x;
result=k*x+b;
cout<<"拟合曲线方程:Y="<<k<<"X"<<"+"<<b<<endl;
cout<<"运算结果是:"<<result<<endl;
}
void smallest(float **a,int n,float *k,float *b)
{
float can[2][3]={n,0,0,0,0,0};
for(int i=0;i<n;i++)
{
can[0][1]+=a[0];
can[0][2]+=a[1];
can[1][1]+=a[0]*a[0];
can[1][2]+=a[0]*a[1];
}
can[1][0]=can[0][1];
for(i=2;i>=0;i--)
can[1]=can[1]-can[0]*can[1][0]/can[0][0];
*b=can[1][2]/can[1][1];
*k=(can[0][2]-can[0][1]**b)/can[0][0];
}