>>127
double area_(double (*fn)(double), double x0, double x1, int n)
{
    int i;
    double s = 0.0, dx = (x1-x0)/n;
    for (i = 0; i < n; ++i)
        s += dx * (*fn)(x0 + (x1-x0)*i/n);
    return s;
}
double area(double x0, double x1, int n) { return area_(func, x0, x1, n); }