重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
C语言没有标准的max和min函数。
我们提供的服务有:成都网站设计、成都做网站、微信公众号开发、网站优化、网站认证、沙湾ssl等。为成百上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的沙湾网站制作公司
常规情况下,几乎所有的编译器使用宏来实现 max() 及 min() 函数,
它们一般在 stdio.h 这份文件中以宏方式被声明。
使用宏来实现的原因一般是因为这两个函数非常简单,
它们一般的实现如下:
#define max(a,b) ( ((a)(b)) ? (a):(b) )
#define min(a,b) ( ((a)(b)) ? (b):(a) )
使用宏的另外一个好处是使得该函数具备了“重载”功能,
可以让传递的参数不局限于某种类型(只限基本类型-非结构类型),如 int 或 char。
1、比较三个数的max函数:
int max(int a,int b,int c){
return (ab?a:b)c?(ab?a:b):c;
}
int main(){
int a=1,b=3,c=2;
printf("最大值为:%d\n",max(a,b,c));
return 0;
}
2、max函数的几种形式:
(1)max(a)
(2)max(a,b)
(3)max(a,[],dim)
(4)[C,I]=max(a)
(5)[C,I]=max(a,[],dim)
1、max函数不是一个C语言里提供给的函数,而是程序员自己定义的。一般来说,max函数是用来求一组数据中的最大值。
2、例如:
int max(int a,int b)
{
if (ab)
return a;
else
return b;
}
// 或者用更简单的:
int max(int a,int b)
{
return ab?a:b;
}
//或者使用宏定义:
#define MAX(a,b) (ab)?(a):(b)
main()
{
int x,y,z,max;
printf("input two numbers:\n");
scanf("%d%d",x,y);
z=MAX(x,y);
printf("maxnum=%d",z);
getch();
}
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;
}
不过该函数只能用于整型而不能用于其它类型。如果有其它类型,比如浮点型,则需要再重新修改。
float max(float a , float b)
{
if( a b) return a;
return b;
}
其实这样代码量比较少的操作,可以定义为宏函数,即带参宏定义的形式。
#define max(a,b) ((a)(b)?(a):(b))
这样既可以不受参数类型限制,又可以提高执行效率。
不过从你的代码来看,只需要定义int类型的max函数即可。
扩展资料:
max(x,y)=0.5*(x+y+|x-y|);在概率论中多有使用,可以将参数指定为数字、空白单元格、逻辑值或数字的文本表达式。如X、Y独立同分布,X~N(0,1),求期望E(max(x,y))。
参考资料来源:百度百科-max函数