C 在另一个函数中将函数作为变量调用
我对c语言编程有点陌生,我正在尝试将函数与梯形规则相结合。我的职能是:C 在另一个函数中将函数作为变量调用,c,numerical-integration,C,Numerical Integration,我对c语言编程有点陌生,我正在尝试将函数与梯形规则相结合。我的职能是: extern double integrate_trapezoid(double function,double min, double max, double subdivisions) { double h = (max-min)/subdivisions; s=0; for (k=0; k < (subdivisions) ; k++) { s = s + (h/2
extern double integrate_trapezoid(double function,double min, double max, double subdivisions)
{
double h = (max-min)/subdivisions;
s=0;
for (k=0; k < (subdivisions) ; k++)
{
s = s + (h/2) * (function(min + k*h) + function(min + (k+1)*h));
}
return s;
}
外部双积分梯形(双功能、双最小、双最大、双细分)
{
双h=(最大-最小)/细分;
s=0;
对于(k=0;k<(细分);k++)
{
s=s+(h/2)*(函数(min+k*h)+函数(min+(k+1)*h);
}
返回s;
}
我的问题是如何将泛型函数传递给此函数?我希望这个积分梯形函数能够积分我需要的任何函数
谢谢!
Omer您将
函数
作为密码传递
例如
将
函数
作为密码传递
例如
传递函数指针。传递函数指针。值得一提的是,函数和函数指针可以自由交换,因此
function(someValue)
和integrate\u梯形(someFunction,…)
就可以了。要使代码可读,请使用typedef-typedef double(*integrate\u func\u t)(double)代码>值得补充的是,函数和函数指针可以自由交换,因此函数(someValue)
和集成梯形(someFunction,…)
就可以了。要使代码可读,请使用typedef-typedef double(*integrate\u func\u t)(double)代码>
double integrate_trapezoid(double (*function)(double),double min, double max, double subdivisions)
{
...
(*function)(someValue);
...
}
...
double someFunction(double value) { ... }
...
integrate_trapezoid(&someFunction, ...);