#include <stdio.h>
#include <math.h>
float integral(float(*p)(float),float a,float b,int n){ //矩形法求定积分的通用函数
int i;
float x,h,s;
h=(b-a)/n;
x=a;
s=0;
for(i=1;i<=n;i++){
x=x+h;
s=s+(*p)(x)*h;
}
return s;
}
float fsin(float x){
return sin(x);
}
float fcos(float x){
return cos(x);
}
float fexp(float x){
return exp(x);
}
int main(){
float a1,b1,a2,b2,a3,b3,c,(*p)(float);
int n=20;
printf("input a1,b1:");
scanf("%f,%f",&a1,&b1); //输入求sinx定积分的上限和下限
printf("input a2,b2:");
scanf("%f,%f",&a2,&b2); //输入求cosx定积分的上限和下限
printf("input a3,b3:");
scanf("%f,%f",&a3,&b3); //输入求e的x次方定积分的上限和下限
p=fsin; //使p指向fsin函数
c=integral(p,a1,b1,n); //求出sinx的定积分
printf("The integral of sin(x) is:%f\n",c);
p=fcos; //使p指向fcos函数
c=integral(p,a2,b2,n); //求出cosx的定积分
printf("The integral of cos(x) is:%f\n",c);
p=fexp; //使p指向fexp函数
c=integral(p,a3,b3,n); //求出e的x次方的定积分
printf("The integral of exp(x) is:%f\n",c);
return 0;
}
C语言 用矩形法计算定积分∫(0—1)sinxdx、∫(-1—1)cosxdx、∫(0—2)e^xdx
最新推荐文章于 2022-11-05 14:34:17 发布