找回密码
 加入
搜索
查看: 6365|回复: 15

[效率算法] 怎么计算A,B,C中哪个最大

 火.. [复制链接]
发表于 2015-12-16 14:45:05 | 显示全部楼层 |阅读模式
例如:dim $a = 39 $b = 27 $c = 50

怎么才能让程序快速计算出A,B,C哪个最大
发表于 2015-12-16 15:17:49 | 显示全部楼层
瞪眼观察法。。。
发表于 2015-12-16 15:24:14 | 显示全部楼层
眯眼冥思法…
怎样才能让LZ发对正确的版块…
这样要比较,不用数组,光写变量就搞晕你
发表于 2015-12-16 16:02:20 | 显示全部楼层
本帖最后由 lanfengc 于 2015-12-16 16:33 编辑

回复 1# 524443834

回复 3# afan

三目运算符。
Local $a=25, $b=22, $c=33
Local $max= GetMaxNum($a,$b,$c)
MsgBox(0,0,$a&" "&$b&" "&$c&" 中的最大值是 :" & $max)

Func GetMaxNum($a,$b,$c)
        Return $a>$b ? ($a>$c ? $a : $c): ($b > $c ? $b : $c)
EndFunc
发表于 2015-12-16 16:16:44 | 显示全部楼层
回复 4# lanfengc


    试试 $a=25
发表于 2015-12-16 16:34:06 | 显示全部楼层
回复 5# afan


    少做了一次三目运算。

Return $a>$b ? ($a>$c ? $a : $c): ($b > $c ? $b : $c)
发表于 2015-12-16 17:51:06 | 显示全部楼层
回复  afan


    少做了一次三目运算。

Return $a>$b ? ($a>$c ? $a : $c): ($b > $c ? $b : $c)
lanfengc 发表于 2015-12-16 16:34



    现在对了。三目用在3个数以内比大小还真是简单高效
 楼主| 发表于 2015-12-16 21:43:52 | 显示全部楼层
谢谢上面帮我的几位,现在在学习其他语言,遇到这个难题,也不算难题,就是不想写IF把自己写晕,想着总有一个科学的办法,又回母论坛了
其实就这么简单的比较,没有两把刷子你们是搞不定的,什么瞪眼法,你知道程序不知道

例如有100个随机数字,你怎么才能让MSGBOX瞬间弹出哪个最大呢??
 楼主| 发表于 2015-12-16 21:44:35 | 显示全部楼层
回复 7# afan

又见AFAN,A版主谢谢你拉
发表于 2015-12-16 22:51:06 | 显示全部楼层
回复 9# 524443834


    其实用数组的话有现成的 _ArrayMax()
发表于 2015-12-17 09:37:20 | 显示全部楼层
回复 8# 524443834


     看来楼主不善于瞪眼观察法,眯眼冥思法。。。直接搞到数组里面用现成的函数。。。
_ArrayMax
_ArrayMin
发表于 2015-12-17 21:06:05 | 显示全部楼层
我是新手  学习了
发表于 2015-12-22 10:09:31 | 显示全部楼层
回复 8# 524443834


    如果是100这么大量的值,你基本上需要数组来解决这个问题
#include <Array.au3>

Opt('MustDeclareVars', 1)

_Demo__Main()
Exit

Func _Demo__Main()
        ;生成100个随机数值,存放入数组
        Local $i, $aArray[101]
        SRandom(Number(StringRight(TimerInit(), 4)))
        For $i = 1 To 100
                $aArray[$i] = Random(1, 1000, 1)
        Next
        
        ;获取数组中的最大值
        Local $Max = _ArrayMax($aArray)
        MsgBox(64, '信息', '最大值为:' & $Max)
EndFunc   ;==>_Demo__Main
我写的生成100个随机值放进数组,只是给你举个例子,你需要有自己的方法将你的随机数据放入你的数组。
发表于 2015-12-22 11:29:36 | 显示全部楼层
回复 13# skyfree


    额,来打个招呼,哈哈
发表于 2015-12-22 16:52:49 | 显示全部楼层
算法很简单,编程不在行,哈哈
先取第1个变量与第2个变量进行比较,若>,则继续与下一个变量相比较;遇到<,则重新赋值为后者
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 01:57 , Processed in 0.071846 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表