关于用DevC++调试程序的错误信息

来源:百度知道 编辑:UC知道 时间:2024/05/14 15:57:54
课程设计用C++实现数值积分,我用DEVC++写了两个.c文件,都编译通过,可就是调用的时候老出错,好象是声明和调用的问题。

romb.c:

#include<iostream>
#include<cmath>

double romb(f,a,b,ep)//f为被积函数,a,b分别为积分上下限,ep为精度
double (*f)(double),a,b,ep;
{
int i,j,k,n;
double static T[10][10];
double h,x,s,I;
h=b-a;
T[0][0]=h/2.0*((*f)(a)+(*f)(b));
n=9;
for (i=1;i<=n;i++)
{
s=0;
for (k=0;k<=i-1;k++)
{
x=a+(k+0.5)*h;
s=s+(*f)(x);
T[i][0]=0.5*T[i-1][0]+h/2.0*s;
h=h/2.0;
}
}
for (j=1; ;j++)
{
for (i=0;i<=n-1;i++)

函数声明错误!
建议使用新标准
double romb(double (*f)(double),double a, double b, double ep)
{
int i,j,k,n;
double static T[10][10];
double h,x,s,I;
h=b-a;
T[0][0]=h/2.0*((*f)(a)+(*f)(b));
n=9;
for (i=1;i<=n;i++)
{
s=0;
for (k=0;k<=i-1;k++)
{
x=a+(k+0.5)*h;
s=s+(*f)(x);
T[i][0]=0.5*T[i-1][0]+h/2.0*s;
h=h/2.0;
}
}
for (j=1; ;j++)
{
for (i=0;i<=n-1;i++)
{
T[i][j]=(pow(4,j)*T[i+1][j-1]-T[i][j-1])/(pow(4,j)-1);
if (fabs(T[0][j]-T[0][j-1])<ep)
break;
}
}
I=T[i][j];
return (I);
}
另外一个也按照这样修改
主程序
#include<iostream>
#include"romb"
using namespace std;

double fun(double x)
{
double y;
y=x/(4.0+x*x);
return(y);
}

double romb(double (*f)(double),double a, double b, double ep);

int main()
{
double R=romb(fun,0.0,1.0,0.000001);