【加试题】有一组正整数,要求对其中的数据进行排列,
排列后奇数在前, 偶数在后。其中最后一个数据排到奇数与偶数交接处;自前到后的第一个偶数排到最后一个位置,空出的位置排列自后向前的第一个奇数,依此类推。排序示例如下。
实现上述功能的 VB 程序如下,但加框处代码有错,请改正。
Const n = 10
Dim a(1 To n) As Integer
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim temp As Integer, flag As Boolean
'读取一组正整数,存储在数组a中,代码略
i = 1: j = n
temp = a(j): flag = True
Do While i < j
If flag Then
If a(i) Mod 2 = 0 Then
a(j) = a(i)
j=j-1
flag=Not flag
Else
'⑴
End If
Else
If a(j) Mod 2 = 1 Then
a(i)=a(j)
flag=Not flag
Else
j=j-1
End If
End If
Loop
'⑵
'依次输出排序后的数据,代码略。
End Sub
⑴{#blank#}1{#/blank#} ⑵{#blank#}2{#/blank#}