- 858 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 18:19:44 ]
- >>856
#include <stdio.h> #include <math.h> double f(double x) { return 1. / (2. + sin(x) + cos(x)); } int main(void) { int k, n; double h, a = -M_PI, b = M_PI, fo, fe, sum; while (1) { printf("分割数 N (0 = END) = "); scanf("%d", &n); if (n == 0) break; h = (b - a) / (2. * n); fo = fe = 0.; for (k = 1; k <= 2 * n - 3; k += 2) { fo += f(a + h * k); fe += f(a + h * (k + 1)); } sum = (f(a) + f(b) + 4. * (fo + f(b - h)) + 2 * fe) * h / 3.; printf("分割数 = %d, 誤差 = %.10g\n", n, sum - sqrt(2.) * M_PI); } return 0; }
|

|