C语言 设一个函数process,调用它时,实现不同功能。
//凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/
输入a, b,第一次调用process找最大值,第二次调用process找最小值,第三次调用求和。
方法1:
#include<stdio.h>
//求最大
int max(int x,int y){
return x>y?x:y;
}
//求最小
int min(int x,int y){
return x<y?x:y;
}
//求和
int add(int x,int y){
return x+y;
}
//类似多态
void process(int x,int y,int (*fun)){
int z;
if(fun==max)
z=max(x,y);
if(fun==min)
z=min(x,y);
if(fun==add)
z=add(x,y);
printf("%d\n",z);
} void main(){
int a,b;
printf("Please input a and b:\n");
scanf("%d %d", &a, &b);
printf("max=");
process(a,b,max);
printf("min=");
process(a,b,min);
printf("sum=");
process(a,b,add);
}
方法2:
#include<stdio.h>
//求最大
int max(int x,int y){
return x>y?x:y;
}
//求最小
int min(int x,int y){
return x<y?x:y;
}
//求和
int add(int x,int y){
return x+y;
} void main(){
int a,b;
int (*process)(int, int); printf("Please input a and b:\n");
scanf("%d %d", &a, &b); process=max;
printf("max=%d\n",process(a,b)); process=min;
printf("min=%d\n",process(a,b)); process=add;
printf("sum=%d\n",process(a,b));
}
结果为:

C语言 设一个函数process,调用它时,实现不同功能。的更多相关文章
- Swift2.0语言教程之函数嵌套调用形式
Swift2.0语言教程之函数嵌套调用形式 Swift2.0语言函数嵌套调用形式 在Swift中,在函数中还能够调用函数,从而形成嵌套调用.嵌套调用的形式往往有两种:一种是在一个函数中调用其它函数:还 ...
- 用c语言写一个函数把十进制转换成十六进制(转)
#include "stdio.h" int main() { int num=0;int a[100]; int i=0; int m=0;int yushu; char hex ...
- 解决一个通过 WebReference 调用 WCF 时自定义 DataContract 类参数提交的问题
先看一下VS2013自动创建默认的IService1.vb,注意自定义的数据契约 CompositeType ' 注意: 使用上下文菜单上的“重命名”命令可以同时更改代码和配置文件中的接口名“ISer ...
- Python中将函数作为另一个函数的参数传入并调用
在Python中,函数本身也是对象,所以可以将函数作为参数传入另一函数并进行调用 在旧版本中,可以使用apply(function, *args, **kwargs)进行调用,但是在新版本中已经移除, ...
- C语言中的函数
C语言中的函数 目录 概述——对函数的理解 C语言中函数的定义和声明 函数允许的参数类型 函数允许的返回类型 递归 概述 由于有些代码段在编写程序的时候经常会用到,此时我们为了减少代码文件的长度和增加 ...
- JS中函数的调用和this的值
调用每一个函数会暂停当前函数的执行,传递控制权和参数给新函数.除了声明时定义的形式参数,每个函数还接收两个附加的参数:this 和 arguments. 参数this在面向对象编程中非常重要,他的值取 ...
- JavaScript函数的调用模式
我们说一个函数的调用模式是作为一个函数来调用,是要与其它三种调用模式做区分函数其他的三种调用: 方法调用模式,构造器调用模式,apply/call调用模式. 方法的调用模式: var obj={ fu ...
- js中如何在一个函数里面执行另一个函数
1.js中如何在函数a里面执行函数b function a(参数c){ b(); } function b(参数c){ } 方法2: <script type="text/javasc ...
- js 从一个函数中传递值到另一个函数
一个函数的调用大家都会用 我今天在调接口的时候突然发现需要引用个另一个函数中拿到的值 举个栗子 刚开始 我是这样调用的 alert弹出的是 hello world . 但是我a函数内部还有一个函数 画 ...
随机推荐
- Git+Gitlab+Ansible剧本实现一键部署动态网站(二)--技术流ken
项目前言 之前已经写了一篇关于git和ansible的博客<Git+Gitlab+Ansible剧本实现一键部署Nginx--技术流ken>.关于git,gitliab,ansible在我 ...
- js如何获取url参数
匹配URL参数的正则是: var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", ...
- 一个简单的Code First建立
1]从VS中建立一个mvc程序 记得添加NuGet包 然后在web.config中添加链接数据库的语句 <connectionStrings> <add name="Ent ...
- Python GUI
1.flexx Flexx 是一个纯Python工具包,用来创建图形化界面应用程序.其使用 Web 技术进行界面的渲染.你可以用Flexx来创建桌面应用,同时也可以导出一个应用到独立的 HTML 文档 ...
- .net core部署在iis上
部署在Windows Server 2008 R2上,一直安装失败,网上找的资料一直无法解决问题,后来找到了官方的文档, 原来是要安装sp1,大概2g左右,同时也要安装Microsoft Visual ...
- Nmap 命令操作详解
首先在安装nmap 稳定版 https://nmap.org/download.html 选择安装目录 通过cmd 去使用也可以在 安装目录中找到 进行可视化操作 以下是nmap 命令 -sT TC ...
- Win10一周年纪念版,瞧一瞧Linux子系统
Bash Bash是一个命令处理器,通常运行于文本窗口中,并能执行用户直接输入的命令.Bash还能从文件中读取命令,这样的文件称为脚本.和其他Unix shell 一样,它支持文件名替换(通配符匹配) ...
- Linux-bc命令(21)
bc 命令是任意精度计算器语言,通常在linux下当计算器用. 它类似基本的计算器, 使用这个计算器可以做基本的数学运算. bc支持运算有以下几种: + - * / % :加,减,乘,除,取余 a^b ...
- 24.QTableView函数使用,右击菜单实现
QTableView view(this); QStandardItemModel model(this); /*设置表头水平标题*/ model.setHorizontalHeaderItem(,n ...
- eclipse下svn的使用
描述:本篇用解决下面的案例中的问题来描述eclipse svn插件的使用. a.案例 某研发团队开发了一款名为App,目前已发布v1.0版本.此项目初期已有部分基础代码, 研发团队再此基础代码上经过3 ...