方法一:

#include<stdio.h>
#include<math.h>
 void jifen(float a,float b,double (*fun)(double))
{
    int i;
    double n=0.001,s=0.0,s1=0.0;
    double l=(b-a)/n;
    for(i=0;i<l;i++)
    {
        s=n*(*fun)(a+n*i)+s;
        s1=((*fun)(a+n*i)+(*fun)(a+n*(i+1)))*n/2+s1;
    }
用矩形法求得该函数在(%2.0f,%2.0f)上的积分为%f。\n",a,b,fabs(s));
用梯形法求得该函数在(%2.0f,%2.0f)上的积分为%f。\n\n",a,b,fabs(s1));
}
 
 void main()
{
 float m,n;
 double f1(double x);
 double f2(double x);
 double f3(double x);
请输入积分下限和上限:\n(注:此题目为下限小于上限,下限可以为负数!)\n");
 scanf("%f,%f",&m,&n);
函数:\n");
 jifen(m,n,f1);
函数:\n");
 jifen(m,n,f2);
函数:\n");
 jifen(m,n,f3);
 }
 double f1(double x)
 {
    return sin(x);
 }
 double f2(double x)
 {
    return cos(x);
 }
  double f3(double x)
 {
    return exp(x);
 }

方法二:

#include<stdio.h>
#include<math.h>
int main()
{
void integral(double a,double b,double (*fun)(double));
double f1(double x);
double f2(double x);
double f3(double x);
double f4(double x);
double f5(double x);
double f6(double x);
double f7(double x);
double f8(double x);
printf("please input 2 numbers:\n");
double a,b;
int n;
scanf("%lf,%lf",&a,&b);
printf("please choose 1,2,3,4,5,6,7or8:");
scanf("%d",&n);
if(n==1)       integral(a,b,f1);
else if(n==2)  integral(a,b,f2);
else if(n==3)  integral(a,b,f3);
else if(n==4)  integral(a,b,f4);
else if(n==5)  integral(a,b,f5);
else if(n==6)  integral(a,b,f6);
else if(n==7)  integral(a,b,f7);
else if(n==8)  integral(a,b,f8);
return 0;
}
void integral(double a,double b,double (*fun)(double))
{
    double m=(b-a)/100;
    double area=0;
    for(int i=0;i<100;i++)
    {
      area=m*(*fun)(a+m*i)+area;    
    }
    printf("%f\n",area);
}
 double f1( double x)
{
    return(x+1);
}
double f2(double x)
{
   return(2*x+3);
}
double f3(double x)
{
    return(1+exp(x));
}
double f4(double x)
{
    return((1+x)*(1+x));
}
double f5(double x)
{
    return(x*x*x);
}
double f6(double x)
{
    return(sin(x));
}
double f7(double x)
{
    return(cos(x));;
}
double f8(double x)
{
    return (exp(x));
}

方法三:

#include<stdio.h>
#include<math.h>
int main()
{
void integral(double a,double b,double(*fun)(double));
double f1(double );
double f2(double );
double f3(double );
double f4(double );
double f5(double );
double f6(double );
double f7(double );
double f8(double );
double a,b;
printf("Please enter a and b:");
scanf("%lf,%lf",&a,&b);
integral(a,b,f1);
integral(a,b,f2);
integral(a,b,f3);
integral(a,b,f4);
integral(a,b,f5);
integral(a,b,f6);
integral(a,b,f7);
integral(a,b,f8);
return 0;
}
void integral(double a,double b,double(*fun)(double))
{
double m,n=a;
double p[200];
for(int i=0;i<=100;i++,n=n+(b-a)/100)
p[i]=(*fun)(n);
m=0;
for(i=1;i<=100;i++)
m=m+(p[i-1]+p[i])*(b-a)/200;
printf("The integral is:%f\n",m);
}
double f1(double n)
{
    double e;
    e=n+1;
    return(e);
}
double f2(double n)
{
   double e;
   e=2*n+3;
   return(e);
}
double f3(double n)
{
   double e;
   e=exp(n)+1;
   return(e);
}
 
double f4(double n)
{
   double e;
   e=(1+n)*(1+n);
   return(e);
}
double f5(double n)
{
   double e;
   e=n*n*n;
   return(e);
}
double f6(double n)
{
  return sin(n);
}
double f7(double n)
{
  return cos(n);
}
double f8(double n)
{
  return exp(n);
}