max函数用于求最大值,可以定义如下函数:
从策划到设计制作,每一步都追求做到细腻,制作可持续发展的企业网站。为客户提供网站制作、成都网站建设、网站策划、网页设计、域名注册、网页空间、网络营销、VI设计、 网站改版、漏洞修补等服务。为客户提供更好的一站式互联网解决方案,以客户的口碑塑造优易品牌,携手广大客户,共同发展进步。
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函数
#includestdio.h
int max(int a,int b,int c)
{
int max=a;
if(bmax)
max=b;
if(cmax)
max=c;
return max;
}
main()
{
int a,b,c;
float m;
scanf("%d%d%d",a,b,c);
m=1.0*max(a,b,c)/(max(a+b,b,c)*max(a,b,b+c));
printf("%.3f",m);
}
max里的叫形参,可以随便用哪个都一样的,大概你是新手,不知道什么是形参和实参吧~
形参与实参的区别:
高级语言在设计程序模块时,模块名定义后,紧跟其后所定义的参数(括弧内)被称为形参(也称虚参)。当该模块被调用时,在主调模块中,出现在被调用的模块名后的参数被称为实参。实参代替虚参的过程被称为虚、实结合,也称换参。多数高级语言的换参是由编译系统来完成,比如C语言和FORTRAN语言亦是如此。BASIC语言的换参则是由程序设计人员来完成的。如果只允许实参向虚参传递,则被称为“单向传递”,C语言的变量类虚、实结合即是“单向传递”。如果同时允许虚参向实参传递,这种传递被称为“双向传递”,FORTRAN 语言定义的子程序即是如此。 当C语言的形参为数组时,形参不另辟存储单元,形参与实参共用内存存储单元。这样,可以节省内存。 C语言在定义函数的同时,对于有参函数,也同时定义了形参。在调用该函数的同时,也指明了实参。实参与形参在内存分别占有两套不同的存储单元(数组除外),但是形参只有在函数被调用过程中才分配存储单元,调用结束后形参占用的单元被释放。数组元素作为实参时,也做为变量来处理。
#include“stdio.h”
ints_max(inta,intb,intc)/*求最大值函数*/
{
intmax;
if(a=b)
max=a;
else
max=b;
if(maxc)
max=c;
returnmax;
}
ints_min(inta,intb,intc)/*求最小值函数*/
{
intmin;
if(a=b)
min=b;
else
min=a;
if(minc)
min=c;
returnmin;
}
floats_pin(inta,intb,intc)/*求平均值函数*/
{
floatpin;
pin=(a+b+c)/3.0;
returnpin;
}
mian()
{
inta,b,c;
printf("请输入三个整数:");
scanf("%d,%d,%d",a,b,c);
printf("这三个整数中的最大值是:%d",s_max(a,b,c));
printf("这三个整数中的最小值是:%d",s_min(a,b,c));
printf("这三个整数的平均值是:%f",s_pin(a,b,c));
getch();
}
扩展资料
11H1333:三个数的最大值
#includebits/stdc++.h
usingnamespacestd;
intmain(){
inta,b,c;
cinabc;
coutmax(max(a,b),max(b,c));
return0;
}
在C里,任何变量或者自定义函数在调用之前要先声明。
好比,你告诉别人:我家里有这样一个函数。
要不你在调用的时候,别人不知道这个函数是哪个,所以就出现未定义,也就是
undefined
所以应该声明下。
#include "stdio.h"
int max(int,int);//先声明后调用。。。。
main()
{
int x,y,z;
printf("input two number:\n");
scanf("%d%d",x,y);
z=max(x,y);
printf("%d",z);
}
int max(int a,int b)
{
if(ab)
return a;
else
return b;
}
改正后的:
#includestdio.h
int main(){
int max(int x,int y,int z);
int a,b,c,d;
scanf("%d,%d,%d",a,b,c);
d=max(a,b,c);
printf("%d\n",d);
return 0;
}
int max(int x,int y,int z){
int w;
if(xyxz){
w=x;}
else{
if(yxyz){
w=y;
}else{
w=z;
}
}
return w;
}
优化后的:
#includestdio.h
int main(){
int max(int x,int y,int z);
int a,b,c,d;
scanf("%d,%d,%d",a,b,c);
d=max(a,b,c);
printf("%d\n",d);
return 0;
}
int max(int x,int y,int z){
if(xyxz) return x;
if(yxyz) return y;
return z;
}