重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
C语言没有标准的max和min函数。
成都创新互联-专业网站定制、快速模板网站建设、高性价比通辽网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式通辽网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖通辽地区。费用合理售后完善,10余年实体公司更值得信赖。
常规情况下,几乎所有的编译器使用宏来实现 max() 及 min() 函数,
它们一般在 stdio.h 这份文件中以宏方式被声明。
使用宏来实现的原因一般是因为这两个函数非常简单,
它们一般的实现如下:
#define max(a,b) ( ((a)(b)) ? (a):(b) )
#define min(a,b) ( ((a)(b)) ? (b):(a) )
使用宏的另外一个好处是使得该函数具备了“重载”功能,
可以让传递的参数不局限于某种类型(只限基本类型-非结构类型),如 int 或 char。
C语言C99新特性里面有现成的求解最大值函数,fmax, 包含的库为math.h, 具体的函数声明为:
double fmax(double x, double y);
如果用int类型也没有问题,我刚刚试了一下。
max函数用于求最大值,可以定义如下函数。
int max(int a, int b)
{
if(ab) return a;
return b;
}
不过该函数只能用于整型而不能用于其它类型。如果有其它类型,比如浮点型,则需要再重新修改。
其实这样代码量比较少的操作,可以定义为宏函数,即带参宏定义的形式。#define max(a,b) ((a)(b)?(a):(b))
这样既可以不受参数类型限制,又可以提高执行效率。
扩展资料
c语言
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
max里的叫形参,可以随便用哪个都一样的,大概你是新手,不知道什么是形参和实参吧~
形参与实参的区别:
高级语言在设计程序模块时,模块名定义后,紧跟其后所定义的参数(括弧内)被称为形参(也称虚参)。当该模块被调用时,在主调模块中,出现在被调用的模块名后的参数被称为实参。实参代替虚参的过程被称为虚、实结合,也称换参。多数高级语言的换参是由编译系统来完成,比如C语言和FORTRAN语言亦是如此。BASIC语言的换参则是由程序设计人员来完成的。如果只允许实参向虚参传递,则被称为“单向传递”,C语言的变量类虚、实结合即是“单向传递”。如果同时允许虚参向实参传递,这种传递被称为“双向传递”,FORTRAN 语言定义的子程序即是如此。 当C语言的形参为数组时,形参不另辟存储单元,形参与实参共用内存存储单元。这样,可以节省内存。 C语言在定义函数的同时,对于有参函数,也同时定义了形参。在调用该函数的同时,也指明了实参。实参与形参在内存分别占有两套不同的存储单元(数组除外),但是形参只有在函数被调用过程中才分配存储单元,调用结束后形参占用的单元被释放。数组元素作为实参时,也做为变量来处理。
例如3个数
int max(int a,int b,int c)
{
int x;
if(a=b)
x=a;
else x=b;
if(c=x)
x=c;
return x;
}
如果是很多个数,就存在数组里,然后用,冒泡/比较/快排等排序方法从大到小排列,然后找a[0]就ok了