Debug Assertion Failed

来源:百度知道 编辑:UC知道 时间:2024/08/20 07:23:21
下面是我的一段程序 可能是参数错了 但不知怎么改 请各位仁兄帮忙解决一下 谢谢!
#include <iostream>
#include <cmath>
#include "array.h"
using namespace std;

double l(double x,Array<double> X,int i)
{
double m=1.0;
for(int j=0;j<i;j++)
{
m*=(x-X[j])/(X[i]-X[j]);
}
for(int k=i+1;k<3;k++)
{
m*=(x-X[k])/(X[i]-X[k]);
}
return m;
}

double L(double x,Array<double> X,Array<double> Y)
{
double y=0;
for(int i=0;i<3;i++)
{
y+=Y[i]*l(x,X,i);
}
return y;
}

int main()
{
Array<double> X(3),Y(3);
X[0]=1;
X[1]=2;
X[2]=3;
Y[0]=4;
Y[1]=5;
Y[2]=6;
double x=0.3367;
cout<<L(x,X,Y)<<endl;
return 0;
}

错误为:Debug Assertion Failed
急用啊 帮忙啊!!!!!!!

不知道你的array.h是从哪来的
根据你的程序, 我用VC6编译器修改如下后编译正确
#include <iostream>
#include <cmath>
using namespace std;

double l(double x,double *X,int i)
{
double m=1.0;
for(int j=0;j<i;j++)
{
m*=(x-X[j])/(X[i]-X[j]);
}
for(int k=i+1;k<3;k++)
{
m*=(x-X[k])/(X[i]-X[k]);
}
return m;
}

double L(double x,double* X, double* Y)
{
double y=0;
for(int i=0;i<3;i++)
{
y+=Y[i]*l(x,X,i);
}
return y;
}

int main()
{
double X[3],Y[3];
X[0]=1;
X[1]=2;
X[2]=3;
Y[0]=4;
Y[1]=5;
Y[2]=6;
double x=0.3367;
cout<<L(x,X,Y)<<endl;
return 0;
}