题目
本题是谭浩强《C程序设计课后习题》题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 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]
2
0.841701