矩形法求定积分通用函数

题目:实现求sin,cos,exp的通用函数

思路:其实就是练习指向函数的指针

 1 #include<stdio.h>
 2 #include<math.h> 
 3 int main(){
 4     void fun(float h1,float a1,double(*p)(float x1));
 5     double fexp(float x1);
 6     double fsin(float x1);
 7     double fcos(float x1);
 8     float a,b,h;
 9     double y;
10     printf("请输入所求区间的下限和上限:");
11     scanf("%f%f",&a,&b);
12      h=(b-a)/10000; 
13     int e;
14     printf("求sin函数定积分选择 1  "); 
15     printf("求cos函数定积分选择 2  "); 
16     printf("求exp函数定积分选择 3  "); 
17     while(scanf("%d",&e)!=0){
18     switch(e){
19         case 1:
20             fun(h,a,fsin);break;
21         case 2:
22             fun(h,a,fcos);break;
23         case 3:
24             fun(h,a,fexp);break;
25         default:
26             break;
27     }
28 } 
29 }
30 double fsin(float x1){
31     return(sin(x1));
32 }
33 double fcos(float x1){
34     return(cos(x1));
35 }
36 double fexp(float x1){
37     return(exp(x1));
38 }
39 void fun(float h1,float a1,double(*p)(float x1)){
40     double y=0;
41     float x;
42     x=a1;
43     for(int i=0;i<10000;i++){
44         x=x+h1;
45         y=y+(*p)(x)*h1;
46     }
47     printf("定积分为  %lf",y);
48 }

说明:矩形法求定积分就是把整个区域分成很多个小矩形,然后计算每个矩形的面积,累加后得到的就是定积分的值。上限减去下限的差除以你分成矩形的个数就是每一个小矩形的底,高为函数值。

运行结果:

 

转载于:https://www.cnblogs.com/xtuxiongda/p/8316168.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值