写一个用矩形法求定积分的通用函数,分别求: ∫(0,1) sinxdx , ∫(0,1)cosxdx , ∫(0,1)e^xdx 。

#include"stdio.h"
#include"math.h"
int main()
{
	float integral(float(*)(float),float,float,int); //声明一个float的指针函数返回值是float,2个float参数,1个int参数的函数。
	float fsin(float);
	float fcos(float);
	float fexp(float);
	float a1,b1,a2,b2,a3,b3,c,(*p)(float);  //定义一个float类型的指针。
	int n=20;
	printf("enter a1,b1: ");                 //输入积分上下限。
	scanf("%f %f",&a1,&b1);
	printf("enter a2,b2: ");
	scanf("%f %f",&a2,&b2);
	printf("enter a3,b3: ");
	scanf("%f %f",&a3,&b3);

	p=fsin;  //是float型指针变量指向fsin函数。
	c=integral(p,a1,b1,n);
	printf("sin(x)=%f\n",c);

	p=fcos;
	c=integral(p,a2,b2,n);
	printf("cos(x)=%f\n",c);

	p=fexp;
	c=integral(p,a3,b3,n);
	printf("exp(x)=%f\n",c);

	return 0;
}
float integral(float(*p)(float),float a,float b,int n)
{
	int i;
	float x,h,s;                                 
	h=(b-a)/n;                    //把积分区间分成n段,每段等长。
	x=a;
	s=0;
	for(i=0;i


你可能感兴趣的:(C)