• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C语言设一个函数process,调用它时,实现不同功能。

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

//凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/

输入a, b,第一次调用process找最大值,第二次调用process找最小值,第三次调用求和。

方法1:

 1 #include<stdio.h>
 2 //求最大
 3 int max(int x,int y){
 4     return x>y?x:y;
 5 }
 6 //求最小
 7 int min(int x,int y){
 8     return x<y?x:y;
 9 }
10 //求和
11 int add(int x,int y){
12     return x+y;
13 }
14 //类似多态
15 void process(int x,int y,int (*fun)){
16     int z;
17     if(fun==max)
18         z=max(x,y);
19     if(fun==min) 
20         z=min(x,y);
21     if(fun==add)
22         z=add(x,y);
23     printf("%d\n",z);
24 }
25 
26 void main(){
27     int a,b;
28     printf("Please input a and b:\n");
29     scanf("%d %d", &a, &b);
30     printf("max=");
31     process(a,b,max);
32     printf("min=");
33     process(a,b,min);
34     printf("sum=");
35     process(a,b,add);
36 }

方法2:

 1 #include<stdio.h>
 2 //求最大
 3 int max(int x,int y){
 4     return x>y?x:y;
 5 }
 6 //求最小
 7 int min(int x,int y){
 8     return x<y?x:y;
 9 }
10 //求和
11 int add(int x,int y){
12     return x+y;
13 }
14 
15 void main(){
16     int a,b;
17     int (*process)(int, int);
18 
19     printf("Please input a and b:\n");
20     scanf("%d %d", &a, &b);
21 
22     process=max;
23     printf("max=%d\n",process(a,b));
24 
25     process=min;
26     printf("min=%d\n",process(a,b));
27 
28     process=add;
29     printf("sum=%d\n",process(a,b));
30 }

结果为:

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#_DataGridView之导出到Excel发布时间:2022-07-13
下一篇:
C++算术运算符与算术表达式发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap