展开全部
按二重积分的定义做。
我的这32313133353236313431303231363533e59b9ee7ad9431333330333631个出错,一起讨论下吧:
#include
#include
#define N 100
void main(){
double result,(*p)(double,double);
double f(double,double);
double integral(double,double,double,double,double(*p)());
p=f;
//printf("请输入a b c d 的值:\n");
//scanf("%lf %lf %lf %lf",&a,&b,&c,&d);
result=integral(2.0,8.0,0,6.0,p);
printf("该二重积分的值为:\n");
printf("%f",result);
printf("\n");
}
//求二重积分的函数
double integral(double a,double b,double c,double d,double (*p)(double,double)){
int i,j;
double x,y,h1,h2,volum=0;
h1=(b-a)/N;
h2=(d-c)/N;
x=a;
y=c;
for(i=0;i
for(j=0;j
volum+=(*p)(x,y)*h1*h2;
y+=h2;
}
x+=h1;
}
return(volum);
}
double f(double x,double y){
double h;
h=sqrt((2+x*x)*sin(x*y)*sin(x*y))+x*x*y*cos(x)-30*x*y*y;
return (h);
}
运行结果: