用vb编程随机产生15个不重复的英文字母

用数组做的~!!

给你一个完整程序吧:
Dim c(1 To 15) As String
Dim i As Integer, j As Integer, a As Integer
Randomize Timer
a = 65 + Int(Rnd * 26) + 32 * Int(Rnd * 2)
c(1) = Chr(a)
For i = 1 To 14
Do While True 'Not f
a = 65 + Int(Rnd * 26) + 32 * Int(Rnd * 2)
For j = 1 To i
If c(j) = Chr(a) Then Exit For
Next j
If j > i Then '找到一个
c(i + 1) = Chr(a)
Exit Do
End If
a = 65 + Int(Rnd * 26) + 32 * Int(Rnd * 2)
Loop
Next i

For i = 1 To 15
Print c(i); " ";
Next i
Print
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-10
不用这么复杂,一次循环足够
Dim n As Byte
Dim C() As String
Dim sT As String, sC As String

sT = "": n = 0

Do While n < 15
sC = Chr(Int(Rnd * 26) + 65) ' ASCII:65-90 大写字母
If InStr(1, sT, sC) = 0 Then
sT = sT & ";" & sC
n = n + 1
End If
Loop

C = Split(sT, ";") '字母在c(1)-c(15)

Print Join(C(), ""), C(1), C(15) '15个字母,第一个,最后一个
第2个回答  2011-11-10
给你个思路
字母的ASCII值
大写 65-90
小写 97-122

随便你随机产生 15个之间的不同数字 然后转换成 字母 即可追问

那不重复的怎么弄

第3个回答  2011-11-10
一个判断是否存在的函数,一个循环生成的函数就行了
随机生成字母的方法为:c=chr(int(rnd*26)+65)追问

那他要不重复字母,字母会弄,不重复的怎么弄阿?

追答

function exists(a[] as string ,c) as boolean
在里面判断a数组里是否包含c字符,如果包含返回true,否则返回false

end function
生成时,先检测生成后的字符是否已经生成就行了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网