C程序设计 (第四版) 谭浩强 习题8.13
习题 8.13 写一个用矩形法求定积分的通用函数,分别求
∫ 0 1 s i n x d x , ∫ 0 1 c o s x d x , ∫ 0 1 e x d x \int_{0}^{1}sinx\ dx,\ \ \int_{0}^{1}cosx\ dx,\ \ \int_{0}^{1}e^x\ dx ∫01sinx dx, ∫01cosx dx, ∫01ex dx
说明:sin,cos,exp函数已在系统的数学函数库中,程序开头要用#include <math.h>。
IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。
代码块
#include <stdio.h>
#include <stdlib.h>
#include <math.h>#define N 10000double integral(double a, double b, int n, double (*fun)(double)){double x = (b - a) / n;double sum = 0.0;for(int i = 1; i <= n; i++){sum += x * fabs((*fun)(a + x * i));}return sum;
}int main(){double f1, f2, f3;f1 = integral(0, 1, N, sin);f2 = integral(0, 1, N, cos);f3 = integral(0, 1, N, exp);printf("f1 = %.2f\n", f1);printf("f2 = %.2f\n", f2);printf("f3 = %.2f\n", f3);system("pause");return 0;
}