//通用函数-->使用函数指针实现#include<stdio.h>#include<math.h>//通用函数,矩形法计算定积分doublefunction(double(*p)(double),double a,double b,double n){//先计算矩形的宽 wdouble w =fabs(a - b)/ n;double result =0;//计算n个矩形的面积和for(int i =0; i < n; i++){
result +=(*p)(a + i * w + w /2)* w;}return result;}intmain(){double a, b, n;//a为下限,b为上限,n为等份//double (*p)(double x); //指向三个函数的指针,通过引用它实现通用函数int ope =0;//输入a,b,nprintf("please enter a,b,n:\n");scanf_s("%lf%lf%lf",&a,&b,&n);printf("please chose the operation(sin-->1,cos-->2,exp--3)\n");scanf_s("%d",&ope);//调用函数switch(ope){case1:printf("sin-->%lf\n",function(sin, a, b, n));break;case2:printf("cos-->%lf\n",function(cos, a, b, n));break;case3:printf("exp-->%lf\n",function(exp, a, b, n));break;default:printf("ERROR(chose 1~3)\n");}return0;}
C程序设计(第五版)【谭浩强】第八章课后习题13//通用函数-->使用函数指针实现#include<stdio.h>#include<math.h>//通用函数,矩形法计算定积分double function(double(*p)(double), double a, double b, double n){ //先计算矩形的宽 w double w = fabs(a - b) / n; double result = 0; //计算n个矩形的面积和