現(xiàn)要編寫一個程序,對每個班級的同學(xué)生成考試座位號,規(guī)則如下:先按成績從高到低排序,如果成績相同,學(xué)號在前的學(xué)生座位號在前,最后輸出每個同學(xué)的座 位號。小王和小李采用不同的方法實現(xiàn)了上述算法。 請仔細比較兩位同學(xué)的代碼的不同之處,并完成相關(guān)代碼的填空。 Dim xm(1 To n) As String,xh(1 To n) As String Dim cj(1 to n)As Integer Private Sub form_load ( ) ‘讀取相關(guān)數(shù)據(jù)表,把姓名、學(xué)號、成績分別存儲到數(shù)組 xm、xh、cj 中,并在 List1 中顯示,代碼略 End Sub Private Sub Com1_Click ( )′小王編寫的代碼部分 Dim wz(1 To n) As Integer For i=1 To n-1 wz(i)=i For j=n To i+1 Step-1 If (1)Then t=cj(j):cj(j)=cj(j-1):cj(j-1)=t t=xh(j):xh(j)=xh(j-1):xh(j-1)=t End If Next j Next i (2) For i=1 To n-1 For j=n To i+1 Step-1 If(3)Then t=cj(j):cj(j)=cj(j-1):cj(j-1)=t t=xh(j):xh(j)=xh(j-1):xh(j-1)=t t=wz(j):wz(j)=wz(j-1):wz(j-1)=t End If Next j Next i List2.Clear List2.AddItem″學(xué)號 姓名 成績 座位號″For i=1 To n List2.AddItem xh(i)+″″+xm(i)+″″+Str(cj(i))+““+Str(wz(i)) Next i End Sub Private Sub Com2_Click ( )′小李編寫的代碼部分 Dim wz(1 To n) As Integer,t(1 To n) As Integer For i=1 To n t(i)=i Next i For i=1 To n For j=n To i+1 Step-1 If(4)Then temp=t(j):t(j)=t(j-1):t(j-1)=temp End If Next j(5)Next i List2.Clear List2.AddItem″學(xué)號 姓名 成績 座位號″For i=1 To n List2.AddItem xh(i)+″″+xm(i)+″″+Str(cj(i))+″″+Str(wz(i)) Next i End Sub
是待排序的數(shù)據(jù),數(shù)據(jù)從a(1)開始存放;整數(shù)型參數(shù)n表示傳入的數(shù)組長度,該函數(shù)的返回值也是一個整數(shù)型數(shù)組.所以調(diào)用此函數(shù)實現(xiàn)排序非常方便: 比如有一個整數(shù)型數(shù)組a(1 to 10)需要降序排序,可以直接這樣調(diào)用: a
=bubble_sort(False,a
,10) 該函數(shù)VB代碼如下: Function bubble_sort(sx As Boolean,a
As Integer,n As Integer) As Integer
Dim i,j,t As Integer For i=1 To n-1 For j=
Step-1 If
Then If a(j)<a(j-1)Then t=a(j):a(j)=a(j-1):a(j-1)=t Else If a(j)>a(j-1)Then t=a(j):a(j)=a(j-1):a(j-1)=t End If Next j Next i bubble_sort=a