C程序设计--指针--用指向函数的指针做函数参数

题目:有两个整数,输入a和b。用户输入1~3,当输入1时,给出a和b中的最大值,当输入2时,给出最小值,当输入3时,给出和。

//用指向函数的指针做函数参数
#include <stdio.h>
void main(){
	int max(int x,int y);
	int min(int x,int y);
	int add(int x,int y);
	int fun(int x,int y,int (*p)(int,int));   //函数声明一下好接下来调用
	int a,b,i;
	printf("please input i,a,b by order(i in range (1,3)):");
	scanf("%d%d%d",&i,&a,&b);
	if(i==1)
		fun(a,b,max);    //这里调用就方便了
	if(i==2)
		fun(a,b,min);
	if(i==3)
		fun(a,b,add);
}
int fun(int x,int y,int (*p)(int,int)){  //在主函数中调用的时候就可以轻松一点,直接按照模式选择
	int z;
	z=(*p)(x,y); //这里是调用下面的函数
	printf("%d\n",z);
}

int max(int x,int y){
	int z;
	z=x>y?x:y;
	printf("%d and %d,the max is:",x,y);
	return z;
}
int min(int x,int y){
	int z;
	z=x<y?x:y;
	printf("%d and %d,the min is:",x,y);
	return z;
}
int add(int x,int y){
	int z;
	z=x+y;
	printf("%d and %d,the add is:",x,y);
	return z;
}

运行结果:

please input i,a,b by order(i in range (1,3)):1 5 3
5 and 3,the max is:5
Press any key to continue

please input i,a,b by order(i in range (1,3)):2 7 4
7 and 4,the min is:4
Press any key to continue

please input i,a,b by order(i in range (1,3)):3 6 9
6 and 9,the add is:15
Press any key to continue

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值