指向函数的指针多用于指向不同的函数,从而可以利用指针变量调用不同的函数,相当于将函数的调用方式由静态(固定的指向某个函数)转换未动态(由传入的指针值决定)。熟练掌握函数指针的调用,有利于程序的模块化设计,提高程序的扩展性。
#include <iostream> //求三个定积分的和
#include <cmath>
using namespace std;
double integral(int a,int b,double (*f)(double x)){
int n=1000,i;
double x,h,s=0.0;
h=(a-b)/n; //将两个坐标之间的x距离分为1000份
for(i=0;i<1000;i++){
x=a+i*h;
s=s+(f(x)+f(x+h))*h/2;
}
return s;
}
double f1(double x){
return 1+x;
}
double f2(double x){
return exp(-x*x/2);
}
double f3(double x){
return x*x*x;
}
int main(){
int a,b;
cin>>a>>b;
cout<<(integral(a,b,f1)+integral(a,b,f2)+integral(a,b,f3))<<endl;
return 0;
}