以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [求助]三个值中从大到小,总是取第二大的怎么写?  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=164353)

--  作者:sz1987cn
--  发布时间:2018/7/10 16:05:32
--  [求助]三个值中从大到小,总是取第二大的怎么写?
老师好,我想问一下有三个值,从大到小,我想总是取第二大的值,应该如何编写?逻辑有点乱了,多谢!
--  作者: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));

不过有个逻辑问题,如果有相等值如何取舍?上面代码暂未考虑相等的情况。

--  作者:sz1987cn
--  发布时间:2018/7/10 16:19:06
--  
以下是引用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));

不过有个逻辑问题,如果有相等值如何取舍?上面代码暂未考虑相等的情况。

好的,谢谢老师的逻辑。我现在大概明白了,老师提的问题我再想想。我目前的想法是:如果其中有相等的就取所有数中最大的(做多时候),反之是最小
--  作者:wenarm
--  发布时间:2018/7/11 0:09:04
--  
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;