一道VB的基础题目,希望高手帮忙解决一下。
我 的可以完全满足你的要求了。附有说明。 6.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 For i = 1 To m '以下是每隔8个字符空间,打印一个数组元素 For j = 1 To n Print Tab((j - 1) * 9); a(i, j); Next Print Next End Sub