高分悬赏VB~编程~做的好追加100

来源:百度知道 编辑:UC知道 时间:2024/05/08 10:34:39
随机产生15 个不重复的A~Z之间的大写字母,存放在字符数组中。
提示:(1)要产生15个不重复的A~Z字符字母,通过Rnd函数产生【65,90】之间的两位随机数,再通过Chr函数转换成为相应字符。(2)要产生不重复字符,需要将每次产生的字符同数组中已有的字符进行比较,若有相同的字符,则重新产生。

Public Sub Command1_Click()
Dim arr(14) As String
Dim b(65 To 90) As Boolean
For i = 0 To 14
Do
x = Int(Rnd * 26) + 65
Loop While b(x)
b(x) = True
arr(i) = Chr(x)
Print arr(i);
Next i
Print
End Sub

完全按楼主意思写的呵..

Dim s(1 To 15) As String, i As Long, j As Long, t As String
Do
t = Chr(Int(Rnd * 26 + 65))
If InStr(Join(s), t) = 0 Then
i = i + 1
s(i) = t
End If
Loop Until i = 15
Print Join(s, "")

缩写了一下,这样看着简短一些:
Dim s(1 To 15) As String, i As Long, j As Long, t As String
For i = 1 To 15
t = Chr(Int(Rnd * 26 + 65))
If InStr(Join(s), t) = 0 Then s(i) = t Else i = i - 1
Next
Print Join(s, "")

骗人,你最多只能追加50分,这是规则