找回密码
 加入
搜索
查看: 1511|回复: 5

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

[复制链接]
发表于 2009-10-15 11:06:41 | 显示全部楼层 |阅读模式
本帖最后由 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[4]=[3,11,2,3]
_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)
 楼主| 发表于 2009-10-15 11:38:45 | 显示全部楼层
我如果想让用户自己输入一些数字来排序,应该怎么改写代码?我看例子中的很多给的数字都是自己定义好的并没有让用户自己去操作
 楼主| 发表于 2009-10-15 12:21:16 | 显示全部楼层
需要这样啊!十分感谢!我查了半天资料没查阅到~谢谢啦!!
发表于 2009-10-15 13:48:41 | 显示全部楼层
嗯 虽然au3会自动转换变量  但是测试发现如果不转换 变成 11 2 3 的结果是 au3只比较第一位

转换为数字就ok啦  我也学习了 感谢 裸体男
发表于 2010-1-7 22:33:15 | 显示全部楼层
来瞧瞧哈
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-28 00:49 , Processed in 0.088510 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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