用梯形积分法计算以下两函数在指定区间中的积分值,要求用指针与函数的关系.

背Packer2022-10-04 11:39:541条回答

已提交,审核后显示!提交回复

共1条回复
还郁闷 共回答了17个问题 | 采纳率94.1%
结果小数位后面第5位就不准确了
#include "Stdio.h"
#include "Math.h"
#define N 1000000
long int i;
double dx,sum;
int main(void)
{
double sinfun(double,double);
double cosfun(double,double);
double myfun(double,double);
double p(double,double,double(*fun)(double,double));
printf("%csinxdx(%d->%d)=%.10fn",244,0,1,p(0,1,sinfun));
printf("%ccosxdx(%d->%d)=%.10fn",244,-1,1,p(-1,1,cosfun));
printf("%c1+x^2dx(%d->%d)=%.10fn",244,1,2,p(1,2,myfun));
getch();
return 0;
}
double sinfun(double a,double b)
{
dx=(b-a)/N;
sum=0;
for(i=0;isum+=sin(a+i*dx)*dx;
return sum;
}
double cosfun(double a,double b)
{
dx=(b-a)/N;
sum=0;
for(i=0;isum+=cos(a+i*dx)*dx;
return sum;
}
double myfun(double a,double b)
{
dx=(b-a)/N;
sum=0;
for(i=0;isum+=(1+a+i*dx)*(1+a+i*dx)*dx;
return sum;
}
double p(double a,double b,double (*fun)(double,double))
{
return (*fun)(a,b);
}
1年前

相关推荐