求VB高手解答。
声明一个有20个元素的一维字符型数组,要求:(1)由随机数形成小写字母构成的数组,每个元素的字符个数由随机数产生,范围1-11.(2)要求将生成的数组分四行显示。(3)显...
声明一个有20个元素的一维字符型数组,要求:
(1)由随机数形成小写字母构成的数组,每个元素的字符个数由随机数产生,范围1-11.
(2)要求将生成的数组分四行显示。
(3)显示生成的字符数组中字符最多的元素。 展开
(1)由随机数形成小写字母构成的数组,每个元素的字符个数由随机数产生,范围1-11.
(2)要求将生成的数组分四行显示。
(3)显示生成的字符数组中字符最多的元素。 展开
3个回答
展开全部
Private Sub Command1_Click()
Dim a(19) As String
Dim n As Integer, m As Integer, i As Integer, j As Integer
Randomize
'生成数组元素
For i = 0 To 19
n = Fix(Rnd * 11) + 1 '元素中字母个数
For j = 1 To n
a(i) = a(i) & Chr(Asc("a") + Fix(Rnd * 26)) '生成字母
Next
Next
'分四行打印,每行5个
For i = 0 To 3
For j = 0 To 4
Print a(i * 5 + j) & vbTab;
Next
Print
Next
Print
'打印出字符个数最多的元素,如果有一样多的,都打印出来
For i = 0 To 19 '找到字母最多的元素中字母的个数m
If Len(a(i)) > m Then
m = Len(a(i))
End If
Next
For i = 0 To 19 '打印有m个字母的元素
If Len(a(i)) = m Then
Print a(i) & vbTab;
End If
Next
Print
End Sub
Dim a(19) As String
Dim n As Integer, m As Integer, i As Integer, j As Integer
Randomize
'生成数组元素
For i = 0 To 19
n = Fix(Rnd * 11) + 1 '元素中字母个数
For j = 1 To n
a(i) = a(i) & Chr(Asc("a") + Fix(Rnd * 26)) '生成字母
Next
Next
'分四行打印,每行5个
For i = 0 To 3
For j = 0 To 4
Print a(i * 5 + j) & vbTab;
Next
Next
'打印出字符个数最多的元素,如果有一样多的,都打印出来
For i = 0 To 19 '找到字母最多的元素中字母的个数m
If Len(a(i)) > m Then
m = Len(a(i))
End If
Next
For i = 0 To 19 '打印有m个字母的元素
If Len(a(i)) = m Then
Print a(i) & vbTab;
End If
Next
End Sub
展开全部
没装VB给你说下思路
先定义两个变量:
dim a as single
dim b as single
dim n as string
dim array[19]
然后初始化随机函数,产生随机两个数:
for j=0 to 19
n=""
randomize
a=int(rnd*11+1)
然后用循环产生数组元素值:
for i=1 to a
b=int(rnd*(小定字母z的ASCII码-a的ASCII的码)+A的ASCII码)
n=n&b
next i
if mod(j,5)=1 then
print array[j]=n;‘在同行打印
else
print array[j]=n
endif
next j
数组产生输出完毕,接下来字符个数!
a=len(array[0])
for i= 1 to 19
if len(array[i])>a then
a=len(array[i])
b=i
endif
next i
print a '最长的长度
print arrya[b]'元素
应该可以了吧!!!!没试不知道行不行!
先定义两个变量:
dim a as single
dim b as single
dim n as string
dim array[19]
然后初始化随机函数,产生随机两个数:
for j=0 to 19
n=""
randomize
a=int(rnd*11+1)
然后用循环产生数组元素值:
for i=1 to a
b=int(rnd*(小定字母z的ASCII码-a的ASCII的码)+A的ASCII码)
n=n&b
next i
if mod(j,5)=1 then
print array[j]=n;‘在同行打印
else
print array[j]=n
endif
next j
数组产生输出完毕,接下来字符个数!
a=len(array[0])
for i= 1 to 19
if len(array[i])>a then
a=len(array[i])
b=i
endif
next i
print a '最长的长度
print arrya[b]'元素
应该可以了吧!!!!没试不知道行不行!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
貌似不难吧,如下:
Private Sub Command1_Click()
Dim 数组(0 To 19) As String
Dim 维数 As Byte, 字符数 As Byte, 字符长 As Byte, 最长字符数组 As Byte
Me.Cls
Randomize
For 维数 = 0 To UBound(数组)
字符数 = Int((11 - 1 + 1) * Rnd + 1)
If 字符长 < 字符数 Then
字符长 = 字符数
最长字符数组 = 维数
End If
Do
数组(维数) = 数组(维数) & Chr(Int((122 - 97 + 1) * Rnd + 97))
字符数 = 字符数 - 1
Loop While 字符数 > 0
If 维数 = 4 Then Me.Print "行1 " & 数组(0) & " | " & 数组(1) & " | " & 数组(2) & " | " & 数组(3) & " | " & 数组(4) & vbLf
If 维数 = 9 Then Me.Print "行2 " & 数组(5) & " | " & 数组(6) & " | " & 数组(8) & " | " & 数组(8) & " | " & 数组(9) & vbLf
If 维数 = 14 Then Me.Print "行3 " & 数组(10) & " | " & 数组(11) & " | " & 数组(12) & " | " & 数组(13) & " | " & 数组(14) & vbLf
If 维数 = 19 Then Me.Print "行4 " & 数组(15) & " | " & 数组(16) & " | " & 数组(17) & " | " & 数组(18) & " | " & 数组(19) & vbLf
Next
Me.Print "最长字符 " & 数组(最长字符数组) & " " & Len(数组(最长字符数组)) & "字符"
End Sub
Private Sub Command1_Click()
Dim 数组(0 To 19) As String
Dim 维数 As Byte, 字符数 As Byte, 字符长 As Byte, 最长字符数组 As Byte
Me.Cls
Randomize
For 维数 = 0 To UBound(数组)
字符数 = Int((11 - 1 + 1) * Rnd + 1)
If 字符长 < 字符数 Then
字符长 = 字符数
最长字符数组 = 维数
End If
Do
数组(维数) = 数组(维数) & Chr(Int((122 - 97 + 1) * Rnd + 97))
字符数 = 字符数 - 1
Loop While 字符数 > 0
If 维数 = 4 Then Me.Print "行1 " & 数组(0) & " | " & 数组(1) & " | " & 数组(2) & " | " & 数组(3) & " | " & 数组(4) & vbLf
If 维数 = 9 Then Me.Print "行2 " & 数组(5) & " | " & 数组(6) & " | " & 数组(8) & " | " & 数组(8) & " | " & 数组(9) & vbLf
If 维数 = 14 Then Me.Print "行3 " & 数组(10) & " | " & 数组(11) & " | " & 数组(12) & " | " & 数组(13) & " | " & 数组(14) & vbLf
If 维数 = 19 Then Me.Print "行4 " & 数组(15) & " | " & 数组(16) & " | " & 数组(17) & " | " & 数组(18) & " | " & 数组(19) & vbLf
Next
Me.Print "最长字符 " & 数组(最长字符数组) & " " & Len(数组(最长字符数组)) & "字符"
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询