一组数据  12,13,14,16,13.5,12.4,14.5  这个数组是不定的,可以自己任意加元素
类似于这样的!
如何求它数组中元素的最大值和最小值??
会的请帮忙!谢谢!

解决方案 »

  1.   

    用排序算法啊,不定没关系,你回用ubound就可以了
      

  2.   

    http://www.eengineerarea.com/vbic/vbic.htm有冒泡排序和快速排序算法。
      

  3.   

    Sub BubbleSort(List() As Double)
        Dim First As Double, Last As Double
        Dim i As Integer, j As Integer
        Dim Temp As Double
        First = LBound(List)
        Last = UBound(List)
        For i = First To Last - 1
            For j = i + 1 To Last
                If List(i) > List(j) Then
                    Temp = List(j)
                    List(j) = List(i)
                    List(i) = Temp
                End If
            Next j
        Next i
    End Sub像这样,如果要把数组中的数据传过去比较啊???
    我一直实现不了?
    list()=val(text1.text)
    这样子,就不会了,我!
    帮忙,谢谢!
      

  4.   

    你不是只要取最大和最小吗?那不需要数组的比较啊
    以最大为例: 
    Sub BubbleSort(List() As Double)
        Dim First As Double, Last As Double
        Dim i As Integer
        Dim Temp As Double
       '定义最大变量
        Dim dblMax as Double
       '最大赋初值
        dblMax=list(0)
        
        First = LBound(List)
        Last = UBound(List)
        For i = First To Last - 1
          if list(i)> dblMax then
            '替换最大值
             dblMax=list(i)
          end if
        Next i
    End Sub
    i是不是从0开始的,你自己看下。
      

  5.   

    我的意思是:
    在一个文本中,由外面输入数据!数据是有很多的!像: 1,2,2,3,4,5
    现在就要取这个文本中的最大值与最小值啊!
    我开始是对
    Dim myarray(1 To 400)
    For k = 1 To 400
    myarray(k) = Val(Text3.Text) + Rnd
    Next k
    可是接下来的比较好像就不行了!
    不管是怎么样,print maxnum时也只是文本中的第一个元素!
    请问这个要如何解决?
      

  6.   

    我说个大概吧
    当数据输入后,后台对文本以“,”分割,存到一个数组中(注意类型)
    然后就用我上面的那段代码,对这个数组取数据就可以了。 
    你要看你自己的代码为什么是第一个数据的话,还是断点进去看看就可以了。 
     你循环的index对不对?情确认下
      

  7.   

    For i = 1 To 400 - 1
        For j = i + 1 To 400
        If w(i) > w(j) Then
        temp = w(i)
        w(i) = w(j)
        w(i) = temp
        minmun = Int(temp)
        End If
        Next j
    Next iPrint minmunFor m = 1 To 400 - 1
        For n = i + 1 To 400
        If w(m) < w(n) Then
        temp = w(m)
        w(m) = w(n)
        w(m) = temp
        maxmun = Int(temp)
        End If
        Next n
    Next mPrint maxmun我是这样子求取它的最大最小的,可是这个maxmun显示出来却不行!!不能为最大
    请问这个要如何解决?
      

  8.   

    For m = 1 To 400
        If w(m) < minmun Then minmun = w(m)
        If w(m) > maxmun Then maxmun = w(m)
    NextPrint minmun
    Print maxmun
      

  9.   

    在文本框中的数组元素是这样传入数组的吗?
    w(m)=val(Text1.text)
    是不是用其它方法载入的?
    载入后又如何进行比较?
      

  10.   

    我有些晕了,还没学会前提,就先做了后面处理?Dim w() As String, m As Long, minmun As Single, maxmun As Single
    w = Split(Text1.Text, ",")
    minmun = w(0)
    maxmun = w(0)
    For m = 0 To UBound(w)
        If w(m) < minmun Then minmun = w(m)
        If w(m) > maxmun Then maxmun = w(m)
    NextPrint minmun
    Print maxmun
      

  11.   

    谢谢你!homezj(小吉) 
    真的感谢你!!!