计算sin(x)的定积分
积分下限为a1,下限为a2;
#include <stdio.g>
#include <math.h>
float fsin(float x)//函数为sin
{
return sin(x);
}
float fcos(float x)//函数为cos
{
return cos(x);
}
//通用函数
//高数课本的方法
void integral(float (*p)(float), float a, float b, int n, float *s)
{
float x, h;
h = (b - a) / n;
x = a; // 下限
*s = 0;
for (int i = 1; i <= n; i++)
{
x += h;
*s += (*p)(x)*h; // 求面积
}
}
int main(int argc, char const *argv[])
{
int n = 200;
float a1, a2, sum; // 上下限,s=结果
printf("请输入积分的下限 上限:\n");
scanf("%f%f", &a1, &a2);
float (*p)(float), res;
p = fsin;
integral(p, a1, a2, n, &sum);
printf("result=%f", sum);
return 0;
}
搬运请注明出处
思路–C语言教材v5(谭浩强)