一道VB的基础题目,希望高手帮忙解决一下。

来源:百度知道 编辑:UC知道 时间:2024/05/31 06:39:32
初学VB 搞不清楚 希望各位高手解决下面的题目
声明一个m*n的矩阵A,要求:由随机数形成大写字母构成的数组,每个元素的字符个数由随机数产生,范围为1-7。将矩阵中最长的元素与矩阵的最后一个元素换位。
会做的请把此题的代码回复给我,并且把一些关键步骤的意思写在旁边,我会追加分数。

我 的可以完全满足你的要求了。附有说明。 VB6.0测试通过。
Private Sub Command1_Click()
Dim m, n, i, j, i1, i2, k, l As Integer
Dim a(1 To 99, 1 To 99), temp, temp2, t As String
'设定数组的最大为99行99列,可更改
temp = 0 '初始化temp,令其为0
Form1.Cls '清空窗体内容
m = 6: n = 5 '生成数组a(m,n) m,n可直接更改为想要的大小
For i = 1 To m
For j = 1 To n
Randomize (Timer) '获得随机数种子
l = (Int(Rnd() * 7 + 1) Mod 7) '随机获得1到7个长度的字符
t = "" '每次循环都清空t
For k = 0 To l
t = t & Chr(Int(Rnd() * 26) + 65)
'随机获得 l长度的大写字母
Next
a(i, j) = t '将t的值传给数组
Print Tab((j - 1) * 9); a(i, j);
'每隔8个字符空间,打印一个数组元素
If Len(a(i, j)) > temp Then
'如果a的长度比上一个a的长度大的话
temp = Len(a(i, j)) '则用较长的a的长度覆盖temp
i1 = i '记录最长元素的坐标
i2 = j
End If
Next
Print
Next
Print
'以下三行是把最大元素和最后元素交换位置
temp2 = a(i1, i2)
a(i1, i2) = a(m, n)
a(m, n) = temp2