早教吧作业答案频道 -->数学-->
用VB生成20位随机字符,由大写字母和数字组成,每五位之间用符号“-”隔开我用了下面这段代码:PrivateSubCommand1Click()N=20ForI=1ToN'N是指定长度RandomizeT=Int(Rnd()*3)SelectCaseTCase0RandomizeR
题目详情
用VB生成20位随机字符,由大写字母和数字组成,每五位之间用符号“-”隔开
我用了下面这段代码:
Private Sub Command1_Click()
N = 20
For I = 1 To N 'N是指定长度
Randomize
T = Int(Rnd() * 3)
Select Case T
Case 0
Randomize
R = R & Chr(Int(Rnd() * 25) + 65) '生成一个大写字母
Case 1
Randomize
R = R & Chr(Int(Rnd() * 9) + 48) '生成一个数字
End Select
Next I
Text1.Text = R '将结果输出在文本框中.
End Sub
这段代码有两个问题:
1.生成的位数不正确,好像是随机位数,很少有20位的.
2.每五位之间没有符号“-”隔开.
我用了下面这段代码:
Private Sub Command1_Click()
N = 20
For I = 1 To N 'N是指定长度
Randomize
T = Int(Rnd() * 3)
Select Case T
Case 0
Randomize
R = R & Chr(Int(Rnd() * 25) + 65) '生成一个大写字母
Case 1
Randomize
R = R & Chr(Int(Rnd() * 9) + 48) '生成一个数字
End Select
Next I
Text1.Text = R '将结果输出在文本框中.
End Sub
这段代码有两个问题:
1.生成的位数不正确,好像是随机位数,很少有20位的.
2.每五位之间没有符号“-”隔开.
▼优质解答
答案和解析
你这个算法有很大的问题:
1 .Randomize只需一次就可以了
2.你这里的T应该是0-2,你的程序没有对2进行判断
3.实际循环一次只需产生一个随机数就可以了.
下面我给你一个程序:
Private Sub Command1_Click()
N = 20
Randomize
For I = 1 To N 'N是指定长度
t = Int(Rnd() * 36) '产生一个0-35的随机数,因为数字加字母总共36个.
If t < 10 Then
R = R & Chr(48 + t) '生成一个数字(随机数在0-9之间),也可写作:R = R & t
Else
R = R & Chr(65 - 10 + t) '生成一个大写字母(随机数在10-35之间)
End If
If (I Mod 5 = 0) And I N Then R = R & "-" '被5整除时,加上-号
Next I
Text1.Text = R '将结果输出在文本框中.
End Sub
'不好意思,刚才在N后面少一个空格
1 .Randomize只需一次就可以了
2.你这里的T应该是0-2,你的程序没有对2进行判断
3.实际循环一次只需产生一个随机数就可以了.
下面我给你一个程序:
Private Sub Command1_Click()
N = 20
Randomize
For I = 1 To N 'N是指定长度
t = Int(Rnd() * 36) '产生一个0-35的随机数,因为数字加字母总共36个.
If t < 10 Then
R = R & Chr(48 + t) '生成一个数字(随机数在0-9之间),也可写作:R = R & t
Else
R = R & Chr(65 - 10 + t) '生成一个大写字母(随机数在10-35之间)
End If
If (I Mod 5 = 0) And I N Then R = R & "-" '被5整除时,加上-号
Next I
Text1.Text = R '将结果输出在文本框中.
End Sub
'不好意思,刚才在N后面少一个空格
看了 用VB生成20位随机字符,由...的网友还看了以下:
我们用aij表示矩阵Amxn的第i行第j列元素,1≤i≤m,1≤j≤n(i、j、m、n∈N*)矩阵 2020-05-13 …
求李阳疯狂英语开篇小诗I"m Chinese录音就是这个的音频、、 I"m Chinese ! 2020-05-14 …
Who Am I 短文翻译So I looked like a fish.Then my tail 2020-05-16 …
英语翻译God help the girlThere is no way I'm looking 2020-05-16 …
看图补全对话A:&&adag?B:&,itisacat.A:whatis&B:Mimi.M-I-M 2020-05-17 …
对于深度为k,结点数为I,有m个叶子结点的满二叉树,下列正确的关系是()。A.I=m+kB.I=2k 2020-05-24 …
I'm和I区别我知道I是“我”,I'm是“我是”.可I'mlost(我迷路了)为什么要用I'm那中 2020-06-10 …
matlab图像处理,提取图片的高频分量!我是这样写的:function gOK=laplace( 2020-06-27 …
(m^2+i)(1+mi)要更仔细的讲解求M?更仔细讲解=m^2+m^3i+i-m=m^2-m+( 2020-07-30 …
保险精算题.设m>1,按从大到小的次序排列i,i(m),d,d(m)1、设m>1,按从大到小的次序排 2020-12-05 …