用矩形法求定积分的程序,为什么运行的结果和书上的不一样??
#include<math.h>
#include<iostream.h>
double fsin(double x)
{
return sin(x);
}
double fcos(double x)
{
return cos(x);
}
double fexp(double x)
{
return exp(x);
}
double intergal(double (*p)(double),double a,double b,int n)
{//////////用矩形法求定积分的通用函数
double s,x,h;
x=a;
s=0;
h=(b-a)/s;
for(int i=1;i<=n;i++)
{
x=x+h;
s=s+(*p)(x)*h;
}
return s;
}
void main()
{
double a1,a2,a3,b1,b2,b3;
double(*p)(double);
int n=20;
cout<<"请输入a1,a2,a3,b1,b2,b3的值: "<<endl;
cin>>a1>>b1>>a2>>b2>>a3>>b3;
cout<<"所求的定积分值为:"<<endl;
cout<<intergal(fsin,a1,b1,n)<<endl;
cout<<intergal(fcos,a2,b2,n)<<endl;
cout<<intergal(fexp,a3,b3,n)<<endl;
}
请大家指点一下,为啥我输入的数是: 0 1 -1 1 0 2
得出来的结果很怪异??
是这样的??:
-1.#IND
-1.#IND
1.#INF
解释下哪不对 谢谢了。