关于C语言代码问题

2025-02-27 18:15:03
推荐回答(1个)
回答1:

int
max(int
a,int
b,int
c)
{
int
z;
if(a>b,a>c)z=a;
if(b>a,b>c)z=b;
if(c>a,c>b)z=c;
return(z);
}
这个函数有问题,给你一组数据,输入3,2,1看看。
至于这个问题的原因就是逗号表达式,结果取最右边的,比如c>a,c>b有效的只有c>b
因次你的函数就变成
当a>c时,z=a,
当b>c时,z=b,
当c>b时,z=c
然而当a=3,b=2,c=1时,z=2
max
=
a>b
?
a:b;
max
=
max>c
?
max:c;