题目
本题是谭浩强《C程序设计课后习题》题8.13。
题目:
写一个用矩形法求定积分的通用函数,分别求∫01sinxdx,∫01cosxdx,∫01exdx,\int_0^1 sinxdx, \quad \int_0^1 cosxdx, \quad \int_0^1 e^xdx,∫01sinxdx,∫01cosxdx,∫01exdx, ,说明: sin,cos,exp 函数已在系统的数
学函数库中,程序开头要用#include <math. h>。
以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步。——来自考研路上的lwj
一、解题思路
思路:
二、代码部分
1.引入库
代码如下(示例):
#include<stdio.h>#include<math.h>
2.主函数部分
代码如下(示例):
double calc(double(*handler)(double)){double dx = (1 - 0) / 1000.0;double sum = 0;for (double i = 0; i <= 1; i += dx)sum += handler(i) * dx;return sum;}int main(){printf("请选择定积分计算函数:\n[1]:[sin]\n[2]:[cos]\n[3]:[exp]\n");int n;scanf("%d", &n);double res = 0;switch (n){case 1:res = calc(sin);break;case 2:res = calc(cos);break;case 3:res = calc(exp);break;default:printf("你输入的数字有误,请输入1-3之间的数字!!!\n");}printf("%lf", res);return 0;}
三、执行结果
输出:
请选择定积分计算函数:[1]:[sin][2]:[cos][3]:[exp]20.841701
题8.13:写一个用矩形法求定积分的通用函数 分别求$\int_0^1 sinxdx \quad \int_0^1 cosxdx \quad \int_0^1 e^xdx $