16.有一組正整數(shù),要求僅對其中的偶數(shù)進(jìn)行降序排序。排序后偶數(shù)在前,奇數(shù)在后。排序示例如圖所示。 實(shí)現(xiàn)上述功能的VB程序如下,但加框處代碼有錯(cuò)。請改正。 Const n=8 Dim ad(1 To n) As Integer Private Sub Form_load( ) ′排序前數(shù)據(jù)存儲在數(shù)組a中,并在文本框Text中顯示代碼略 End sub Private Sub Commandl_Click( ) Dim k As Integer.i As Integer.j As Integer t As Integer i=1 Do While i<=n-l k=i For j=i+1To n ′① k=j Elself a(k) Mod 2=0 And a(j) Mod 2=0 And an(j)>a(k) Then k=j End If Next j If k<>i Then t=a(k):a(k)=a(i):a(i)=l End If ′② Loop ′依次輸出排序后的數(shù)據(jù)。代碼略 End Sub
。 (2)實(shí)現(xiàn)上述功能的VB程序如下,請?jiān)诋嬀€處填入合適代碼。 Const n=100 Private Sub Commandl_Click( ) Dim a(1 To 8*n)As Integer.b(1 To 8*n)As Integer Dim f(1 To 8)As Integer.c(1 To 8)As Integer Dim m As Integer.s As String.jye.ai As String Dim i As Integer.j As Integer.p As Integer s=Text1.Text:m=Val (Text2,Text) For i=1 To 8 f(i)=①
Nexi i ′以下代碼功能:根據(jù)整數(shù)m確定每一個(gè)字節(jié)二進(jìn)制數(shù)各位數(shù)字的出列順序 p=0 For i=1 To 7 Do While j<=n ②
If f(p)=1 Then j=j+1 Loop f(p)=0:c(i)=p Next i For j=1 To 8 If f(j)=1 Then c(i)=j:Exit For Next j For i=1 To len(s) a(i)=Val( Mid(s,i.1)) Next i i=l:start=-8 Do Whilei<=Len(s) If i Mor 8=1 Then③
b(i)=a(start+c((i-1)Mod 8+1)) i=i+1 Loop res=“” For i=1 To Len(s) res=res+Chr(Asc(“0”)+b(i)) Nest i Text3.Text=res End Sub