/*
作业:
编写一个求定积分的通用函数,用它分别求以下几个积分:
double integral(double a, double b, double (*f)(double));
*/
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
double one(double x);
double two(double x);
double integral(double a, double b, double (*f)(double));/*
该题流程是这样的,首先定义一个指针数组,每一个数组元素都是一个返回值为double类型
参数为double类型的函数,
通过输入的C的值,用P[C]
来指示现在数组中的指针指向哪个函数,然后通过
integral 函数返回得到的数值
*/
void main(void)
{
int a;
int b;
int c;
double (*p[2])(double x)={one,two};
scanf("%d %d %d",&a,&b,&c);
printf("%lf\n",integral(a,b,p[c]));
}
double one(double x)
{
return ((x*x)/2+(x*x*x)/3);
}
double two(double x)
{
return(1.5*(x*x)+(2/3)*(x*x*x));
}
double integral(double a, double b, double (*f)(double))
{
return f(b)-f(a);
}