比如:又几个变量 N1 N2 N3 N4 N5 N6 ……N10
想快速判断谁最大,那么我提供2个思路来解决这个问题;思路解释;循环比较10次,但是和思路A 有所不同
;这个是直接判断,当前位置变量,是否大于其他9个数,如果 那么他自然为最大数,可以减少执行次数
;思路A的弊端是,每次都会执行10次,思路B,可能在第二次 判断为最大数,那么就直接停止执行了
比如:又几个变量 N1 N2 N3 N4 N5 N6 ……N10
想快速判断谁最大,那么我提供2个思路来解决这个问题
不需要排序,不通过文本,快速高效
脚本里,附带思路解释与详细说明
注:我不会发布完整功能脚本,只发布思路案例,具体应用请自便
主要互相交流思路
取出最大值_思路A
[@main]
#IF
#ACT
;定义一组变量, 该形式类似于其他变成的整形数组,可用嵌套变量方式,动态获取 N$数值0-9 的变量值
MOV N$原始变量_0 70
MOV N$原始变量_1 1025
MOV N$原始变量_2 744
MOV N$原始变量_3 456
MOV N$原始变量_4 128
MOV N$原始变量_5 355
MOV N$原始变量_6 69
MOV N$原始变量_7 102
MOV N$原始变量_8 448
MOV N$原始变量_9 569
mov N$位置 0
GOTO @取出最大数值
[@取出最大数值]
#IF
#ACT
;将当前循环 所在位置数组 赋值为普通变量 方便判断大小
mov N$当前变量 <$str(N$原始变量_<$str(N$位置)>)>
;判断当前位置变量值,是否大于其他9个数值
#IF
not small N$当前变量 <$str(N$原始变量_0)>
not small N$当前变量 <$str(N$原始变量_1)>
not small N$当前变量 <$str(N$原始变量_2)>
not small N$当前变量 <$str(N$原始变量_3)>
not small N$当前变量 <$str(N$原始变量_4)>
not small N$当前变量 <$str(N$原始变量_5)>
not small N$当前变量 <$str(N$原始变量_6)>
not small N$当前变量 <$str(N$原始变量_7)>
not small N$当前变量 <$str(N$原始变量_8)>
not small N$当前变量 <$str(N$原始变量_9)>
#ACT
sendmsg 7 最大值=<$str(N$当前变量)>
#elseact
;累计循环计数变量
inc N$位置 1
GOTO @取出最大数值
不需要排序,不通过文本,快速高效
脚本里,附带思路解释与详细说明
注:我不会发布完整功能脚本,只发布思路案例,具体应用请自便
主要互相交流思路
取出最大值_思路B
;思路解释
;循环比较10次,如果大于当前位置 变量,就暂时设定他为做大,直至终止,等结束后,哪最后一个位置自然为最大数值
[@main]
#IF
#ACT
;定义一组变量, 该形式类似于其他变成的整形数组,可用嵌套变量方式,动态获取 N$数值0-9 的变量值
MOV N$数值0 10
MOV N$数值1 12
MOV N$数值2 9
MOV N$数值3 3
MOV N$数值4 5
MOV N$数值5 7
MOV N$数值6 20
MOV N$数值7 29
MOV N$数值8 15
MOV N$数值9 8
GOTO @取出最大数值
[@取出最大数值]
#IF
#ACT
MOV N$最大值 0 \\先初始化变量
MOV N$值循环 0 \\先初始化变量
;10此循环
Loopgoto @取值计算循环程序 10
[@取值计算循环程序]
#IF
#ACT
INC N$值循环 1 \\每循环一次,变量+1
;检测本次 数组成员的值,是否大于上一次,如果大于,那么暂且设定该值为最大值
#IF
LARGE N$数值<$STR(N$值循环)> <$STR(N$最大值)>
#ACT
MOV N$最大值 <$STR(N$数值<$STR(N$值循环)>)>
;循环结束,上一段记录过的成员,就是本组数值的最大值
#IF
EQUAL N$值循环 10
#ACT
SENDMSG 7 〖提示〗最大值:<$STR(N$最大值)>
BREAK