测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A63676. 有一组正整数,要求仅对其中的素数进行升序排序。排序后素数在前,非素数在后排序示例如下。排序前867154181793789排序后537417179898681实现上述功能的VB程序如下,但加框处代码有错,请改正。Const n = 8Dim a(1 To n) As IntegerPrivate Sub Command1_Click()Dim i As Integer, j As Integer…

填空题

题目描述

有一组正整数,要求仅对其中的素数进行升序排序。排序后素数在前,非素数在后排序示例如下。

排序前

86

71

5

41

81

79

37

89

排序后

5

37

41

71

79

89

86

81

实现上述功能的VB程序如下,但加框处代码有错,请改正。

Const n = 8
Dim a(1 To n) As Integer
Private Sub Command1_Click()

Dim i As Integer, j As Integer, k As Integer, t As Integer

Dim flag As Boolean

'读取一组正整数,存储在数组 a 中,代码略

For i = 1 To n - 1

k = 1                                                    ‘①

If IsPrime(a(k)) Then flag = True 

Else flag = False

For j = i + 1 To n

If IsPrime(a(j)) Then

If a(j) < a(k) Then                         ‘②

k = j

flag = True

End If

End If

Next j

If k <> i Then

t = a(k): a(k) = a(i): a(i) = t

End If

If Not flag Then Exit For 'Exit For 表示退出循环


Next i

'依次输出排序后的数据。代码略


End Sub
Function IsPrime(m As Integer) As Boolean

'本函数判断 m 是否是素数:是素数返回值为 True,不是素数返回值为 False'代码略


End Function


划线处代码有误,请将正确的代码填到横线上。
_________________________
_________________________