s=(sin(a+n*i)+sin(a+n*(i+1)))*n/2+s; // (sin(a+n*i)是梯形的上底,sin(a+n*(i+1))是下底printf("用梯形法求得该函数在(%2.0f,%2.0f)上的积分为%f。\n",a,b,s);
}
main()
{
jifen(0,1);
}
三.(综合)写一个用矩形法和梯形法求定积分的通用函数,分别求sin(x)在(0,1)上、cos(x)在(-1,1)上、exp在(0,2)上的定积分。
说明:jifen的函数定义中,double (*fun)(double)表示fun是指向函数的指针,被指的函数是一个实型函数,有一个实型形参,Fun是指向函数的指针变量。用jifen(0,1,sin)语句调用jifen 函数时,给jifen函数传递了sin函数的入口地址,这时jifen函数中的fun函数就相当于是sin函数了,(*fun)(a+n*i)相当于sin(a+n*i)。这样jifen函数就是一个通用求定积分的函数了。#include
#include
jifen(float a,float b,double (*fun)(double))
{int i,l;