指向函数的指针做函数参数
#include<stdio.h>int main()
{
int fun(int x,int y,int(*p)(int,int));
int max(int,int);
int min(int,int);
int add(int,int);//函数声明
int a=34,b=-21,n;
printf("please choose 1,2 or 3");
scanf("%d",&n);
if(n==1) fun(a,b,max);
if(n==2) fun(a,b,min);
if(n==3) fun(a,b,add);//函数调用
return 0;
}
int fun(int x,int y,int (*p)(int ,int))
{
int result;
result=(*p)(x,y);
printf("%d\n",result);
}
int max(int x,int y)
{
int z;
if(x>y) z=x;
else z=y;
printf("max=");
return (z);//返回两者中较大者
}
int min(int x,int y)
{
int z;
if(x<y) z=x;
else z=y;
printf("max=");
return (z);//返回两者中较小者
}
int add(int x,int y)
{
int z;
z=x+y;
printf("add=");
return (z);//返回两者之和
}
教科书上的代码,理解性的照着打了一遍,问什么有错?