#include <stdio.h>
double f1(double x)
{
return xx;
}
double f2(double x,double y)
{
return xy;
}
double fun(double a,double b)
{
double (f)(); /定义函数指针。定义类型:(指针变量名)()/
double r1,r2;
f=f1; /函数指针变量赋值时,只需给出函数名而不必给出参数/
r1=f(a);
f=f2;
r2=(f)(a,b);
return r1+r2;
}
main()
{
double x1=5.0,x2=3.0,r;
r=fun(x1,x2);
printf("\nx1=%f,x2=%f,x1x1+x1*x2=%f\n",x1,x2,r);
}
老是显示f=f1和下面的f=…..那里有问题,可是答案就是那样的,不知道为什么,求解答
f1 的函数体应该是:
return x * x; 你没有写乘号;
同理, f2 应该是 return x * y;
另外, main 函数应该是:
int main(int argc, char** argv) {
//...
return 0;
}