vb求助 随机产生10个大写字母

2025-04-07 20:09:01
推荐回答(3个)
回答1:

Private Sub Command1_Click()

  Dim a(10) As String * 1

  Randomize

  Call Form_Load

  For i = 1 To 10

    a(i) = Chr(65 + Int(Rnd * 26))

    Label1.Caption = Label1.Caption & a(i) & " "

  Next i

  For i = 1 To 9

    For j = 1 To 10 - i

      If a(j) > a(j + 1) Then

        t = a(j): a(j) = a(j + 1): a(j + 1) = t

      End If

    Next j

  Next i

  For i = 1 To 10

    Label2.Caption = Label2.Caption & a(i) & " "

  Next i

End Sub


Private Sub Form_Load()

  Label1.Caption = ""

  Label2.Caption = ""

  Label1.FontSize = 18

  Label2.FontSize = 18

End Sub

回答2:

  1. 使用函数VB的Rnd 函数、Randomize 语句。

  2. Rnd 函数,返回一个包含随机数值的 Single。

  3. Randomize 语句,初始化随机数生成器。

  4. 代码示例:

    Option Explicit

        Dim i As Long

        Dim j As Long


    Private Sub Command1_Click()

        Dim t As Long

        Dim st, st1

        Dim a(1 To 26) As Integer

        For i = 1 To 10

            a(i) = Int(Rnd * 26)

            st = st & Chr(a(i) + 65) & " "

        Next i

        Label1 = st

        For i = 1 To 9

            For j = i + 1 To 10

                If a(i) > a(j) Then

                    t = a(i): a(i) = a(j): a(j) = t

                End If

            Next j

            st1 = st1 & Chr(a(i) + 65) & " "

        Next i

        st1 = st1 & Chr(a(i) + 65) & " "

        Label2 = st1

    End Sub

回答3:

Private Sub Command1_Click()
Dim a(9) As String, tmp As String
Dim i As Integer, j As Integer
For i = 0 To 9
a(i) = Chr(65 + Int(Rnd * 26))
Next
Label1.Caption = Join(a, " ")
For i = 0 To 9
For j = i To 9
If Asc(a(i)) > Asc(a(j)) Then
tmp = a(i)
a(i) = a(j)
a(j) = tmp
End If
Next
Next
Label2.Caption = Join(a, " ")

End Sub