vb编程题~~随机产生20个不重复的A~Z之间的英文字母,按字母顺序输出,每行6个。

随机产生20个不重复的A~Z之间的英文字母,按字母顺序输出,每行6个。提示:定义一个有20个元素的字符型数组,将产生的字母放入数组中。每次产生一个字母,则与已经产生过的字母比较,看是否相同若相同,则跳过该字母,不放入数组中。

给你个思路。

首先,定义20个数组。
然后在过程里弄个for循环,比如for i = 1 to 20
利用随机函数,生成65~90之间的函数,赋值到变量,比如 str=Int((90 - 65 + 1) * Rnd + 65)
再弄个for循环,比如for j = 1 to i
判断是否重复 if 数组名(j)=str then
call 过程
exit sub
end if
next
然后给数组赋值 比如数组名(i)=chr(str)
next
end sub追问

请问call过程怎么用

追答

你学VB,这个代码应该很熟悉吧:
Private Sub Command1_Click()
End Sub
这就是一个过程,Call就是调用这个过程,比如要调用上面这个过程:
Call Command1_Click()
就是这样。
再给你演示一个。
Private Sub Form_Load()
End Sub

Call Form_Load()

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-23
Dim a()

Private Sub Command1_Click()
ReDim Preserve a(0)

Do Until UBound(a) = 20
Randomize
J = Int(Rnd * 26 + 65)
temp = Chr(J)

For k = 0 To UBound(a)
If a(k) = temp Then Exit For
Next

If k = UBound(a) + 1 Then
ReDim Preserve a(UBound(a) + 1)
a(UBound(a)) = temp
End If

Loop
For I = 1 To 19
For J = I + 1 To 20

If Asc(a(I)) > Asc(a(J)) Then temp = a(I): a(I) = a(J): a(J) = temp
Next J
Next I
For y = 1 To 20
If y Mod 6 = 0 Then
Print
Else

Print a(y);
End If
Next
Print
End Sub
第2个回答  2011-04-23
这题挺麻烦,还一点分都没有...

相关了解……

你可能感兴趣的内容

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