#include<stdio.h> double f(float x) { return x*x+x; } double definf(float a,float b,int n) { int k; double h,tmp; h=(b-a)*1.0/n; for(tmp=0,k=1;k<=n-1;k++) tmp+=f(a+k*h); return h*(f(a)+f(b))/2+h*tmp; } int main() { float a,b; double definfresult; int n; do { printf("此程序用复化梯形公式计算f(x)=x^2+x的定积分 "); printf("积分下限a="); scanf("%f",&a); printf("积分上限b="); scanf("%f",&b); printf("划分个数n="); scanf("%d",&n); definfresult=definf(a,b,n); printf("下限为%.2f,上限为%.2f时,f(x)的定积分为%.2lf ",a,b,definfresult); }while(n>0); }