#include <stdio.h>
int process(int x,int y,int (*p)()) //int (*p)()为函数指针
{
int max(int x,int y);
int sub(int x,int y);
int add(int x,int y);
if(p == max)
{
return max(x,y);
}
else if(p == sub)
{
return sub(x,y);
}
else
return add(x,y);
}
int max(int x,int y)
{
if(x>y)
{
return x;
}
else
return y;
}
int sub(int x,int y)
{
return x - y;
}
int add(int x,int y)
{
return x + y;
}
void main()
{
int process(int x,int y,int (*p)());
int x,y;
printf("input x and y:");
scanf("%d%d",&x,&y);
printf("x =%d y =%d max =%d\n",x,y,process(x,y,max));
printf("x =%d y =%d sub =%d\n",x,y,process(x,y,sub));
printf("x =%d y =%d add =%d\n",x,y,process(x,y,add));
}
结果:
input x and y:5 6
x =5 y =6 max =6
x =5 y =6 sub =-1
x =5 y =6 add =11
C语言刷题(16):使用函数指针,实现一个函数调用加减,最大值函数运算
猜你喜欢
转载自blog.csdn.net/qq_38173631/article/details/103988652
今日推荐
周排行