C语言刷题(16):使用函数指针,实现一个函数调用加减,最大值函数运算

#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
发布了45 篇原创文章 · 获赞 7 · 访问量 1611

猜你喜欢

转载自blog.csdn.net/qq_38173631/article/details/103988652
今日推荐