欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【c/c++】梯形法求定积分

程序员文章站 2024-02-02 22:06:28
...
#include<stdio.h>
int main(){
	float de_integral(float a,float b,float(*p)(float));
	float f(float x); 
	printf("%f",de_integral(1,0,f));
	return 0;
}

float f(float x){
	return(x*x+5*x+7);
}

float de_integral(float a,float b,float(*p)(float)){//积分上限a,积分下限b 
	int i,l;        //梯形法求定积分
	float n=0.001,s=0;;//n表示划分的单位宽度,n是矩形的宽度 
	l=(a-b)/n;    //l表示有多少个单位宽度 
	for(i=0;i<l;i++)s+=((*p)(b+n*i)+(*p)(b+n*(i+1)))*n/2;
	return s;
}