vb随机排序,求指教 5

1-14,14个数,随机排序,点击按钮并显示在14个label上。要求是前三个label的数值必须大于4... 1-14,14个数,随机排序,点击按钮并显示在14个label上。
要求是前三个label的数值必须大于4
展开
 我来答
149005501
2015-04-03 · TA获得超过8.6万个赞
知道顶级答主
回答量:7.9万
采纳率:90%
帮助的人:1.3亿
展开全部

已经测试通过

代码如下:

Dim b As Integer, k As Integer
Dim a(13) As Integer '定义一个数组(有14位),默认上限为a(0)
For i = 0 To 13
    a(i) = i + 1 '为a(i)赋值
    Label1(i).Caption = ""
Next i
For i = 0 To 13
b = 0
Randomize '防止每次生出随机数一样
If i < 3 Then
b = Int(Rnd * (9 - i)) + 5 '在5-14里面随机
Else
b = Int(Rnd * (14 - i)) + 1 '在1-14里面随机
End If
k = 0
For j = 0 To 13
If a(j) <> 0 Then k = k + 1
If k = b Then
Label1(i).Caption = "" & a(j)
a(j) = 0
Exit For
End If
Next j
Next i
设计营地
2015-04-03 · 分享交流设计软件相关的知识
设计营地
采纳数:552 获赞数:860

向TA提问 私信TA
展开全部
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim d(14) As Integer
For i = 1 To 14
    d(i) = i
Next
For i = 1 To 13
Randomize
j = Fix(Rnd * 14) + 1
d(0) = d(j)
d(j) = d(15 - i)
d(15 - i) = d(0)
Next
For i = 1 To 14
    Label1(i - 1) = d(i)
Next
End Sub
追问
要求是前三个必须大于4
追答
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim d(14) As Integer
Dim s(4)
For i = 1 To 14
    d(i) = i
Next
For i = 1 To 13
Randomize
j = Fix(Rnd * 14) + 1
d(0) = d(j)
d(j) = d(15 - i)
d(15 - i) = d(0)
Next


Do
        For i = 1 To 3
                If d(i) <= 4 Then
                Randomize
                j = Fix(Rnd * 11) + 3
                d(0) = d(j)
                d(j) = d(i)
                d(i) = d(0)
                End If
        Next
Loop Until d(1) > 4 And d(2) > 4 And d(3) > 4
For i = 1 To 14
    Label1(i - 1) = d(i)
Next
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式