#include #include double f1(double x) { return x * x; } double midpoint_rule(double a, double b, int n, double (*func)(double)) { double s, fa, fb, x, h; int j; h = (b-a)/((double) n); s=0.0; for (j=0; j < n; j++) { x = a + (j+0.5) * h; s += (*func)(x); } s *= h; return s; } int main() { int n; double a=0.0, b=2.0; printf("Number of partitions = "); scanf("%d", &n) ; printf("f1 = %lf\n", midpoint_rule(a, b, n, f1)) ; return 0; }