#include <stdio.h>
#include <math.h>
void trap(double a,double b, int n, double f(double arg));
double g(double x);
double h(double x);
int main()
{
double a,b;
int n;
printf("区间左端点:");
scanf("%lf",&a);
printf("区间右端点:");
scanf("%lf",&b);
printf("区间分段数:");
scanf("%d",&n);
trap(a,b,n,h);
return 0;
}
void trap(double a,double b ,int n,double f(double arg))
{
double T;
double h=(b-a)/n;
double sum=0.0;
for(int i=1;i<=n-1;i++)
{
double x = a+i*h;
sum += f(x);
}
T = h*(f(a) + f(b) + 2*sum)/2;
printf("the area is %f",T);
}
double g(double x)
{
return x*x*sin(x);
}
double h(double x)
{
return sqrt(4-x*x);
}
程序中实现了函数参数的使用。程序主要是求取一个函数f(x)围成的图形的面积。
在计算方法中有类似的方法,应该是龙倍格算法。
新意在于:函数的参数是另一个函数,增强了函数的实用性