用VB编写,随便输入6个数让它们从小到大排列,和从大到小排列

例:672451
从小到大124567
从大到小765421

'在窗体中添加一个button,一个textbox
Option Explicit
Private Sub Command1_Click()
Dim intNum(5) As Integer, intTemp As Integer
Dim i As Integer, j As Integer
Dim strTemp As String
'随机生成6位数字
Randomize Timer
Text1 = Int(Rnd * 1000000)
'向数组中储存数字
For i = 0 To 5
intNum(i) = CInt(Mid(Text1, i + 1, 1))
Next i
'从小到大数组排序
For j = 0 To 5
For i = 1 To 5
If intNum(i - 1) > intNum(i) Then
intTemp = intNum(i - 1)
intNum(i - 1) = intNum(i)
intNum(i) = intTemp
End If
Next i
Next j
'输出结果
strTemp = "从小到大:"
For i = 0 To 5
strTemp = strTemp & " " & intNum(i)
Next i
strTemp = strTemp & vbCrLf & "从大到小:"
For i = 5 To 0 Step -1
strTemp = strTemp & " " & intNum(i)
Next i
MsgBox strTemp
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2006-09-15
Option Base 1
Private Function FindMin(a() As Integer)
Dim Start As Integer
Dim Finish As Integer, i As Integer
Start = LBound(a)
Finish = UBound(a)
Min = a(Start)
For i = Start To Finish
If a(i) < Min Then Min = a(i)
Next i
FindMin = Min
End Function

Private Sub Cmd1_Click()
Dim arr1
Dim arr2(4) As Integer
arr1 = Array(Val(Text1.Text), Val(Text2.Text), Val(Text3.Text), Val(Text4.Text))

For i = 1 To 4
arr2(i) = CInt(arr1(i))
Next i
M = FindMin(arr2)
Print "Min为: "; M
End Sub

从小到大

Option Base 1
Private Function FindMax(a() As Integer)
Dim Start As Integer
Dim Finish As Integer, i As Integer
Start = LBound(a)
Finish = UBound(a)
Max = a(Start)
For i = Start To Finish
If a(i) > Max Then Max = a(i)
Next i
FindMax = Max
End Function

Private Sub Cmd1_Click()
Dim arr1
Dim arr2(4) As Integer
arr1 = Array(Val(Text1.Text), Val(Text2.Text), Val(Text3.Text), Val(Text4.Text))

For i = 1 To 4
arr2(i) = CInt(arr1(i))
Next i
M = FindMax(arr2())
Print "Max是: "; M
End Sub

从大到小
相似回答