有一組正整數(shù),要求對其中的數(shù)據(jù)進(jìn)行排列,排列后奇數(shù)在前,偶數(shù)在后。其中最后一個數(shù)據(jù)排到奇數(shù)與偶數(shù)交接處;自前到后的第一個偶數(shù)排到最后一個位置,空出的位置排列自后向前的第一個奇數(shù),依此類推。排序示例如下。
排序前 |
71 |
85 |
64 |
55 |
42 |
62 |
33 |
17 |
34 |
30 |
排序后 |
71 |
85 |
17 |
55 |
33 |
30 |
62 |
42 |
34 |
64 |
實現(xiàn)上述功能的 VB 程序如下,但加框處代碼有錯,請改正。
Const n=10
Dim a(1 To n) As Integer
Private Sub Command1_Click ( ?。?br />Dim i As Integer,j As Integer
Dim temp As Integer,flag As Boolean
'讀取一組正整數(shù),存儲在數(shù)組 a 中,代碼略
i=1:j=n
temp=a(j):flag=True
Do While i<j
If flag Then
If
=0 Then
a(j)=a(i)
j=j-1
flag=Not flag
Else
j=j-1'(1)
End If
If a(j) Mod 2=1 Then
a(i)=a(j)
flag=Not flag
Else
j=j-1
End If
End If
Loop
a(i+j)=temp'(2)
'依次輸出排序后的數(shù)據(jù),代碼略。
End Sub