C语言——定积分的计算

思路分析

在这里插入图片描述

代码实现

#include  <stdio.h>
float DefiniteIntegral(float x,float y,float (*f)(float));
float Fun(float x);

int main() {
    
    
    printf("%f",DefiniteIntegral(1,2,Fun));
}

/*
    功能描述:计算定积分的函数
    形参列表:上限x
              下限y
              被积函数f
    注意事项:注意计算对应的等分数和梯形的高度
*/

float DefiniteIntegral(float x,float y,float (*f)(float))
{
    
    
    int n, i;
    float h, sum;

    n = 1000;
    h = (y - x) / n;
    sum = ((*f)(x) + (*f)(y)) / 2;
    for(i = 0; i < 1000; i++)
    {
    
    
        sum = sum + (*f)(x + i * h);
    }

    return sum * h;
}

/*
    需要被定积分的函数式
*/
float Fun(float x)
{
    
    
    return x / (1 + x * x);
}

总结

在这里插入图片描述

  • 编程的习惯不是很好,先是声明,然后在使用。谋定而后动,想到什么就是什么,思维比较乱。

猜你喜欢

转载自blog.csdn.net/Blackoutdragon/article/details/108009956