试题

试题 试卷

logo

题型:填空题 题类:常考题 难易度:困难

算法与程序设计

有一组正整数,要求对其中的数据进行排列,排列后奇数在前,偶数在后。其中最后一个数据排到奇数与偶数交接处;自前到后的第一个偶数排到最后一个位置,空出的位置排列自后向前的第一个奇数,依此类推。排序示例如下。

排序前

71

85

64

55

42

62

33

17

34

30

排序后

71

85

17

55

33

30

62

42

34

64

实现上述功能的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

举一反三
返回首页

试题篮