如何将函数(具有自己的参数)作为函数中的参数传递?
How can I pass a function(which has its own parameters) as a parameter in a function?
我正在尝试将计算二次函数值的函数作为参数传递给计算区间下表面的函数。
首先,我只是想弄清楚如何将二次方程的参数传递给它。
#include<stdlib.h>
#include<stdio.h>
double quadraticf(double x, double y, double z);
double interval_calculator(double(*quad_pnt)(double, double, double));
int main(){
interval_calculator(quadraticf);
return 0;
}
double interval_calculator(double (*quad_pnt)(double)){
quad_pnt(double f, double yg, double zh);
}
double quadraticf(double x, double y, double z){
printf("%lf, %lf, %lf \n",x,y,z);
}
您可能想要这样的东西:
#include <stdlib.h>
#include <stdio.h>
double quadraticf(double x, double y, double z) {
printf("quadraticf: %lf, %lf, %lf \n", x, y, z);
return x + y + z;
}
double otherquadraticf(double x, double y, double z) {
printf("otherquadraticf: %lf, %lf, %lf \n", x, y, z);
return x * y * z;
}
double interval_calculator(double (*quad_pnt)(double, double, double), double f, double yg, double zh)
{
return quad_pnt(f, yg, zh);
}
int main() {
printf("result = %f\n", interval_calculator(quadraticf, 2.0, 3.0, 4.0));
printf("result = %f\n", interval_calculator(otherquadraticf, 2.0, 3.0, 4.0));
}
我正在尝试将计算二次函数值的函数作为参数传递给计算区间下表面的函数。
首先,我只是想弄清楚如何将二次方程的参数传递给它。
#include<stdlib.h>
#include<stdio.h>
double quadraticf(double x, double y, double z);
double interval_calculator(double(*quad_pnt)(double, double, double));
int main(){
interval_calculator(quadraticf);
return 0;
}
double interval_calculator(double (*quad_pnt)(double)){
quad_pnt(double f, double yg, double zh);
}
double quadraticf(double x, double y, double z){
printf("%lf, %lf, %lf \n",x,y,z);
}
您可能想要这样的东西:
#include <stdlib.h>
#include <stdio.h>
double quadraticf(double x, double y, double z) {
printf("quadraticf: %lf, %lf, %lf \n", x, y, z);
return x + y + z;
}
double otherquadraticf(double x, double y, double z) {
printf("otherquadraticf: %lf, %lf, %lf \n", x, y, z);
return x * y * z;
}
double interval_calculator(double (*quad_pnt)(double, double, double), double f, double yg, double zh)
{
return quad_pnt(f, yg, zh);
}
int main() {
printf("result = %f\n", interval_calculator(quadraticf, 2.0, 3.0, 4.0));
printf("result = %f\n", interval_calculator(otherquadraticf, 2.0, 3.0, 4.0));
}