老师好,我想问一下有三个值,从大到小,我想总是取第二大的值,应该如何编写?逻辑有点乱了,多谢!
假设a,b,c(代码编写时候不要用c,c是关键字,这里只是举例) 为已知的三个变量
result:if(a>b,if(b>c,b,c),if(a>c,a,c));
不过有个逻辑问题,如果有相等值如何取舍?上面代码暂未考虑相等的情况。
以下是引用FireScript在2018/7/10 16:14:41的发言:
假设a,b,c(代码编写时候不要用c,c是关键字,这里只是举例) 为已知的三个变量
result:if(a>b,if(b>c,b,c),if(a>c,a,c));
不过有个逻辑问题,如果有相等值如何取舍?上面代码暂未考虑相等的情况。
好的,谢谢老师的逻辑。我现在大概明白了,老师提的问题我再想想。我目前的想法是:如果其中有相等的就取所有数中最大的(做多时候),反之是最小
aaa:max(aa,max(bb,cc));
bbb:min(aa,max(bb,cc));
ccc:min(aa,min(bb,cc));
if aaa<>bbb and bbb<>ccc and aaa<>ccc then begin
MAX_X:=bbb;
end
ELSE BEGIN
MAX_X:=aaa;
END
result:MAX_X;