急需个VB程序,嘿嘿!先谢谢啦!魔法学徒 一级 不多10分

来源:百度知道 编辑:UC知道 时间:2024/06/06 01:13:10
要求先从01到40(可改:比如30,55,100什么的)的40个数中选出6个(或5个,3个,10个)数(所选6个数字不重复),再对选出的这六个数从小到大排列!
顺便告诉下在FORM窗体下的其他按钮。
谢谢,希望有“ ' ”注释!
我是自学VB,自己会作从几个数中选几个数,但是做不了排列,惭愧啊!
我用的是“Visual Basic 6.0 精简版”,还请VB高手指教!
fgm811215,不对啊!
也不知道是我自己哪里弄错了!不过,经过几天的琢磨,我现在自己会做了!
还是谢谢你哦!
DeadlYBlinder的呢,还不怎么看得懂,不过你写了那么多,分就给你了,谢谢!o(∩_∩)o...

要做排列,就必须理解什么叫冒泡法
基本来讲就是两个for循环互套

直接加到你原来的按钮上也可以
新建一个按钮来控制这个也可以

假设你选出来6个数,把他们存入数组(或者拆分进数组,我用这个演示)
假设你选到的数存在getNumber变量里

那你的 myNumber = myNumber & getNumber & "|"
相当于得到以下内容
myNumbers = 12 & "|" & 35 "|" & 2 & "|" & 79 & "|" & 23 "|" & 55
myNumbers = "12|35|2|79|23|55"

你的代码将为
resolveNumber =split(myNumber,"|") '将myNumber拆分,拆分符号为"|"

for i = 0 to 5 '外循环6次
for j = 0 to 4 '内循环5次
if CInt(resolveNumber(j)) => CInt(resolveNumber(j+1)) then
'判断临近的两个数大小
(CInt(String)可以强制转换字符串中的数字成数字形式,
但必须是数字字符才能转)
'如果前者大于后者,则前后两者互换位置
'------------------------------------
tmpNumber = resolveNumber(j+1) '把后者拷入一个临时记录
resolveNumber(j+1) = resolveNumber(j) '把前者值拷个后者
resolveNumber(j) = tmpNumber '把刚才拷入临时记录的值拷回给前者
'--------