/* File name 9-2.c */ #include <stdio.h> double simpson(double a, double b, int n); double fun(double x); main() { printf("Pi is about %1.15f.\n", simpson(0.0, 1.0, 65536)); } double simpson(double a, double b, int n) { double sum=fun(a); double interval=(b-a)/n; /* The length of the small interval */ int k; for (k=1; k < n ; k++){ sum = sum + 2.0*fun(a+k*interval)+4.0*fun(a+k*interval-0.5*interval); } return interval*(sum + fun(b)+4.0*fun(b-0.5*interval))/6.0; } double fun(double x) { return 4.0/(1.0 + x*x); }