代碼問題,改壹句就好了:
#include<iostream>#define?N?3?//插值節點數目
using?namespace?std;
void?main()
{
float?x[N];?//差值節點橫坐標
float?y[N];?//差值節點縱坐標
float?a;//所求點橫坐標
float?fx=0,tmp=1;
int?i,j;
cout<<"輸入插值點的坐標:"<<endl;
for(i=0;i<N;i++)
{
cin>>x[i];
cin>>y[i];
}
cout<<"輸入所求點的橫坐標:"<<endl;
cin>>a;
for(i=0;i<N;i++)
{
tmp?=?1;//加上這句,開始前還原tmp
{
for(j=0;j<N;j++)
if(i!=j)
tmp=tmp*(a-x[j])/(x[i]-x[j]);
}
fx=fx+tmp*y[i];
}
cout<<"所求值為:"<<endl;
cout<<fx<<endl;
}