franky 发表于 2009-10-15 11:06:41

关于let's autoit中一个例子的问题

本帖最后由 franky 于 2009-10-15 18:25 编辑

有个将三个数值从小到大排序的问题:我自己改写了一下
a=InputBox('比较大小','第一个整数:')
$b=InputBox('比较大小','第二个整数:')
$c=InputBox('比较大小','第三个整数:')

If $a>$b Then
        $d=$a
        $a=$b
        $b=$d
EndIf

If $a>$c Then
        $d=$c
        $c=$a
        $a=$d
EndIf
If $b>$c Then
        $d=$b
        $b=$c
        $c=$d
EndIf
MsgBox(0,'排序结果','从小到大依次为:'&$a&','&$b&','&$c)

结果我手动输入三个数:11、2、3时 运行脚本,排序的结果为11 2 3 ?这是什么原因造成的排序错误啊?

顽固不化 发表于 2009-10-15 11:29:46

本帖最后由 顽固不化 于 2009-10-15 12:17 编辑

就数据的排序来说,用array.au3函数比较好#Include <Array.au3>
dim $a=
_ArraySort($a,0,1)
_ArrayDisplay($a)A、B、C要转换成数字:$a=Number(InputBox('比较大小','第一个整数:'))
$b=Number(InputBox('比较大小','第二个整数:'))
$c=Number(InputBox('比较大小','第三个整数:'))
If $a>$b Then
      $d=$a
      $a=$b
      $b=$d
EndIf
If $a>$c Then
      $d=$c
      $c=$a
      $a=$d
EndIf
If $b>$c Then
      $d=$b
      $b=$c
      $c=$d
EndIf
MsgBox(0,'排序结果','从小到大依次为:'&$a&','&$b&','&$c)

franky 发表于 2009-10-15 11:38:45

我如果想让用户自己输入一些数字来排序,应该怎么改写代码?我看例子中的很多给的数字都是自己定义好的并没有让用户自己去操作

franky 发表于 2009-10-15 12:21:16

需要这样啊!十分感谢!我查了半天资料没查阅到~谢谢啦!!

sxd 发表于 2009-10-15 13:48:41

嗯 虽然au3会自动转换变量但是测试发现如果不转换 变成 11 2 3 的结果是 au3只比较第一位

转换为数字就ok啦我也学习了 感谢 裸体男

xiwangzishi 发表于 2010-1-7 22:33:15

来瞧瞧哈:face (13):
页: [1]
查看完整版本: 关于let's autoit中一个例子的问题