知识点:用指向函数的指针作函数参数

//知识点:用指向函数的指针作函数参数
/*题目:有两个整数a和b,由用户输入1,2或3.如输入1,程序就给出a和b中大者,输入2,
就给出a和b中小者,输入3,则求a和b之和。 
*/ 
#include<stdio.h>
main()
{
    int fun(int x,int y,int (*p)(int,int));     //fun函数声明
    int max(int,int);       //max函数声明
    int min(int,int);       //min函数声明
    int add(int,int);       //add函数声明
    int a,b,n;
    scanf("请输入a:%d",&a);
    scanf("请输入b:%d",&b);
    printf("Please choose 1,2 or 3:");
    scanf("%d",&n);     //输入1,2或3之一
    if(n==1)    fun(a,b,max);   //输入1时调用max函数
    else    if(n==2)    fun(a,b,min);       //输入2时调用min函数
    else    if(n==3)    fun(a,b,add);       //输入3时调用add函数
    return 0;
 } 

 int fun(int x,int y,int(*p)(int,int))  //定义fun函数
 {
    int result;
     result=(*p)(x,y);
     printf("%d\n",result); 
 } 

 int max(int x,int y)   //定义max函数 
 {
    int z;
    if(x>y) z=x;
    else    z=y;
     printf("max=");
     return(z);     //返回值是两数中的大者 
 }

 int min(int x,int y)   //定义min函数
 {
    int z;
     if(x>y)    z=x;
     else z=y;
     printf("min=");
     return(z);     //返回值是两数中的小者 
 } 

 int add(int x,int y)   //定义add函数
 {
    int z;
    z=x+y;
    printf("sum=");
    return(z);      //返回值是两数的和 
 } 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值