16.對 n 個互不相同的整數(shù)(整數(shù)的最大值不超過 m)進行排序,排序要求如下:①奇 數(shù)在前,偶數(shù)在后;②奇數(shù)升序排序;③偶數(shù)降序排序。小劉用 VB 編寫了實現(xiàn)上述功能的程序。 程序運行時,自動產生 n 個不同的隨機數(shù)存儲在數(shù)組 a 中,并在列表框 List1 中顯示。單擊按鈕 Command1 后,按要求在列表框 List2 中輸出排序后的結果。 實現(xiàn)上述功能的 VB 程序如下,但加框處代碼有錯,請改正。 Const n=15 Const m=100'整數(shù)的最大值 Dim a(1 To n) As Integer Private Sub Form_Load( ) '本過程產生 n 個不同隨機數(shù)存儲在數(shù)組 a 中,并在列表框 List1 中顯示 End Sub Private Sub Command1_Click( ) Dim i As Integer Dim flag(1 To m) As Boolean'flag(i)=True 代表數(shù)組 a 中存在值為 i 的元素 For i=1 To m flag(i)=False Next i For i=1 To n ① Next i For i=1 To m-1 Step 2 If flag(i) Then List2.AddItem Str(i) Next i For ② If flag(i) Then List2.AddItem Str(i) Next i End Sub
。 (2)實現(xiàn)上述功能的 VB 程序如下,請在橫線處填入合適的代碼。 Dim a(1 To 20)As Integer,b(1 To 20)As Integer Private Sub Command1_Click( ) Dim m As Integer,n As Integer,pa As Integer,pb As Integer Dim flag As Boolean,s As String m=Val(Text1.Text) n=Val(Text2.Text) s=Str(m)+“/“+Str(n)+“=“s=s+“0.“ pa=1:pb=1:flag=True b(1)=m m=m*10 Do While pa<=20 And fla g=True a(pa)=m\n If a(pa)>0 Then pb=pb+1 ① m=b(pb)*10 Else m=m*10 End If flag=Jud(pb) If b(pb)=0 Then flag=False s= ② pa=pa+1 Loop Label3.Caption=s End Sub Function Jud(x As Integer) As Boolean Dim i As Integer For i=1 To x-1 If ③Then Jud=False Exit Function'退出自定義函數(shù) End If Next i Jud=True End Function