C语言实现复化梯形公式算定积分

#include<stdio.h>
double f(float x)
{
    return x*x+x;
}
double definf(float a,float b,int n)
{
    int k;
    double h,tmp;
    h=(b-a)*1.0/n;
    for(tmp=0,k=1;k<=n-1;k++)
        tmp+=f(a+k*h);
    return h*(f(a)+f(b))/2+h*tmp;
}
int main()
{
    float a,b;
    double definfresult;
    int n;
    do
    {
        printf("此程序用复化梯形公式计算f(x)=x^2+x的定积分\n");
        printf("积分下限a=");
        scanf("%f",&a);
        printf("积分上限b=");
        scanf("%f",&b);
        printf("划分个数n=");
        scanf("%d",&n);
        definfresult=definf(a,b,n);
        printf("下限为%.2f,上限为%.2f时,f(x)的定积分为%.2lf\n\n",a,b,definfresult);
    }while(n>0);
}

 

posted @ 2014-12-06 15:20  fishegg  阅读(2364)  评论(0编辑  收藏  举报