#define _CRT_SECURE_NO_DEPRECATE
#include
double integrate(double, double, int);
double equa(double); /*函数说明,背积函数,具体函数可替换*/
float a, b, c;
void main() {
double leftlimit, rightlimit;/*积分上限,下限*/
int n;/*梯形划分数*/
printf("请输入被积分函数的系数:a,b,c:\n");
scanf("%f%f%f", &a, &b, &c);
printf("请输入被积分函数的上限及下限:\n");
do {
scanf("%lf%lf", &leftlimit, &rightlimit);
if (leftlimit > rightlimit) printf("积分下限应该小于上限,请重新输入:");
} while (leftlimit < rightlimit);
printf("请输入被积分函数的划分数(要求正整数):\n");
getchar();
scanf("%d", &n);
if (n < 0) n = -n;/*对用户输入的负整数进行取正*/
printf("积分结果为=%.2f\n", integrate(leftlimit, rightlimit,n));
system("pause");
}
/*积分求解函数*/
double integrate(double lower, double upper, int n) {
double h, si, area = 0;
int i;
h = (upper - lower) / n;
for (i = 0;i < n;i++) {
si = h*(equa(lower + i*h) + equa(lower + (i + 1)*h)) / 2;
area = si + area;
}
return area;
}
/*被积函数*/
double equa(double xi) {
return a*xi*xi + b*xi + c;
}