如何用vb设计一个程序,可以将输入的10个以上的数字 按大小顺序排列出来,可以给我思路,也可以给我答案。

如题所述

其实从思想上来说,就是一个排序的思路问题。
排序的方法有很多。
说2个最简单的(设让结果从小到大排列)
方法一
假设10个数
把第一个依次与他后面的比较,如果比后面的大,就把位子换下,这样当第一个看完后面9个数后第一个数就变成最小的数了
再把第二个依次与后面8个比较,让第二个变成9个中最小的
以此类推,每次都拿还没比出顺序的第一个数和它后面的每个数比较
这样当第九个数拿出来和第十个数比完后,整个数列就变成从小到大排列的了
方法二(叫做冒泡)
依次拿第一个数和第二个比,第二个和第三个比,凡是前面的数比后面的数大的话就换位子,当第九个和第十个比完后,第十个位子永远是最大的数。然后再对前9个数再做一次这个事情,那第九个数就变9个里最大的了,直到最后一次第一个数和第二个数比完(此时后面8个数已经按序排列了)后,整个数列就变成了从小到大排列了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-02
自己搜搜排序法吧

Option Explicit
Option Base 1
Dim xx

Private Sub Command1_Click()
'选择排序法
Dim i As Integer, j As Integer, t As Integer
Debug.Print: Debug.Print "选择排序法 从小到大排列"
For i = 1 To 9
For j = i + 1 To 10
'"<"从大到小排列,xx(1)最大,">"从小到大排列,xx(1)最小
If xx(i) > xx(j) Then t = xx(i): xx(i) = xx(j): xx(j) = t
Next j
Next i
For i = 1 To 10
Debug.Print xx(i); Space(1);
Next i
End Sub

Private Sub Command2_Click()
'冒泡排序法
Dim i As Integer, j As Integer, t As Integer
Debug.Print: Debug.Print "冒泡排序法从大到小排列"
For i = 1 To 9
For j = 1 To 10 - i
'"<"从大到小排列,xx(1)最大,">"从小到大排列,xx(1)最小
If xx(j) < xx(j + 1) Then t = xx(j): xx(j) = xx(j + 1): xx(j + 1) = t
Next j
Next i
For i = 1 To 10
Debug.Print xx(i); Space(1);
Next i
End Sub

Private Sub Command3_Click()
'交换排序法
Dim i As Integer, j As Integer, p As Integer, t As Integer
Debug.Print: Debug.Print "交换排序法从小到大排列"
For i = 1 To 9
p = i
For j = i + 1 To 10
'"<"从大到小排列,xx(1)最大,">"从小到大排列,xx(1)最小
If xx(p) > xx(j) Then p = j
Next j
If p <> i Then t = xx(p): xx(p) = xx(i): xx(i) = t
Next i
For i = 1 To 10
Debug.Print xx(i); Space(1);
Next i
End Sub

Private Sub Command4_Click()
'找最大值
Dim i As Integer
For i = 2 To 10
If xx(1) < xx(i) Then xx(1) = xx(i)
Next i
Debug.Print: Debug.Print "最大值是:"; xx(1)
Form_Load
End Sub

Private Sub Command5_Click()
'找最小值
Dim i As Integer
For i = 2 To 10
If xx(1) > xx(i) Then xx(1) = xx(i)
Next i
Debug.Print: Debug.Print "最小值是:"; xx(1)
Form_Load
End Sub

Private Sub Form_Load()
xx = Array(10, -10, 20, 60, -50, 40, -12, 11, 36, 33)
End Sub
相似回答