vb题目:随机产生20个正整数存入二维数组A(4,5),并输出到文本框Text1中,找出其中的素数存入一维数组B并输

出到Text2中,用选择法对B数组元素排序后输出到Text3中... 出到Text2中,用选择法对B数组元素排序后输出到Text3中 展开
 我来答
归萱pN
2012-06-10 · TA获得超过989个赞
知道大有可为答主
回答量:1068
采纳率:0%
帮助的人:1474万
展开全部
Private Sub Command1_Click()
Dim i, j, A(1 To 4, 1 To 5) As Integer, p, B(), n, temp
Text1 = ""
For i = 1 To UBound(A, 2)
For j = 1 To UBound(A, 1)
Randomize
A(j, i) = Int(Rnd * 100) '0-99的正整数
Text1 = Text1 & A(j, i) & " "
If fc(A(j, i)) Then
n = n + 1
ReDim Preserve B(1 To n)
B(n) = A(j, i)
End If
Next
Print
Next
If n > 0 Then
Text2 = Join(B)
Else
Text2 = ""
Text3 = ""
Exit Sub
End If
For i = 1 To UBound(B) - 1
p = i
For j = i + 1 To UBound(B)
If B(j) < B(p) Then p = j
Next j
If p <> i Then
temp = B(p)
B(p) = B(i)
B(i) = temp
End If
Next
Text3 = Join(B)
End Sub
Function fc(n) As Boolean
Dim i
If n < 2 Then Exit Function
For i = 2 To Int(Sqr(n))
If n Mod i = 0 Then Exit Function
Next
fc = True
End Function
更多追问追答
追问
求简化。。。那个join(B)是什么意思。。。另外,可否留名咨询?
追答
join(B) 就是把组数连起来输出,可以带格式。
你也可以这样输出,效果是一样的,但啰嗦
for i=lbound(b) to ubound(b)
s=s & b(i) & space(1)
next
text3=trim(s)
-------------------
简化?
UBound(A, 1) -----二维数组的一维上标
UBound(A, 2) -----二维数组的二维上标
这些你都可以用数字指定,但实用的软件很多都是不确定的,所以必须这样做。
其它的没有什么好简化了,素数可能有也可能没有,所以必须是动态数组。判断素数使用函数这样更容易理解,最后就是选择法排序了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式