随机产生一个一维字符数组,元素长度在2-6之间 按元素长度升序排列. 要求: 任意输入一个字符串 按原来的规律显示

解决方案 »

  1.   

    这是我刚刚写的,看看符合你的要求不
    Dim s$(4), m$(50), i%, L%, T%
    '产生随机字符数组
    Private Sub Command1_Click()
    Command2.Enabled = True
    T = 4
    Picture1.Print "随机产生字符数组:"
    For i = 0 To 4
        Randomize
        L = Int(Rnd * 5 + 2)
            For j = 1 To L
        s(i) = s(i) + Chr(Int(Rnd * 25 + 97))
        m(i) = s(i)
            Next j
        Picture1.Print s(i); ",";
    Next i
    Picture1.Print
    paixu s
    End Sub'根据数组中字符长度排序
    Function paixu(s$())
    For i = 0 To T - 1
    Min = i
    For j = i + 1 To T
    If Len(s(j)) < Len(s(Min)) Then Min = j
    Next j
    temp = s(i)
    s(i) = s(Min)
    s(Min) = temp
    Next i
    Picture1.Print "排序后的数组是:"
    For i = 0 To T
    Picture1.Print s(i); ",";
    Next i
    Picture1.Print
    End Function'添加字符串到数组
    Private Sub Command2_Click()
    If Trim(Text1.Text) = "" Then
    MsgBox "请输入要添加的字符串"
    Text1.SetFocus
    Else
    n = T
    m(n + 1) = Text1.Text
    T = n + 1
    paixu m
    End If
    End SubPrivate Sub Form_Load()
    Command2.Enabled = False
    End Sub可能有点麻烦,不过经验证已经符合楼主的要求了
    毕竟我也学VB不久,可能写的不太标准
    多多指教
      

  2.   

    忘了说明,上面代码要求  一个picture控件,两个command,其中commond1为产生随机数组,command2用来添加从text中输入的字符串   说清楚一点楼主就不用麻烦了么
    还有随机产生的字符串只限定在了a-z之间,因为时间关系,不过楼主还可以再添加