给分:50,限前两名

解决方案 »

  1.   

    for i=1 to numI
           outNum = numMin + (numMax - numMin) / (numI + 1) * i
    next
      

  2.   

    Private Sub Command1_Click()
        Dim i As Integer
        Dim a() As Single
        
        Debug.Print "No1"
        a = GetAvgNum(12, 18, 1)
        
        For i = 0 To UBound(a)
            Debug.Print a(i)
        Next i
        
        Debug.Print "No2"
        Erase a
        a = GetAvgNum(12, 18, 2)
        
        For i = 0 To UBound(a)
            Debug.Print a(i)
        Next i
        
        Debug.Print "No3"
        Erase a
        a = GetAvgNum(12, 18, 3)
        
        For i = 0 To UBound(a)
            Debug.Print a(i)
        Next i
            
    End SubPrivate Function GetAvgNum(ByVal intStartNum As Integer, ByVal intEndNum As Integer, ByVal intDivideNum As Integer) As Variant
        Dim intTemp As Integer
        Dim intAry() As Single
        Dim i As Integer
        
        intTemp = intEndNum - intStartNum
        
        ReDim intAry(intDivideNum - 1)
        
        For i = 0 To intDivideNum - 1
            intAry(i) = intStartNum + intTemp / (intDivideNum + 1) * (i + 1)
        Next i
        
        GetAvgNum = intAry
        
    End Function
      

  3.   

    No1
     15 
    No2
     14 
     16 
    No3
     13.5 
     15 
     16.5 
      

  4.   

    哇!超简单Option ExplicitDim MiddleData() As Single '返回的中间数据Private Function AvgNum(A As Long, B As Long, I As Integer)
            Dim n As Integer
            ReDim MiddleData(I) '划分的等份。为1表示2等分,中间有1个数;为2表示中间有2个数
            'MiddleData(0) = A: MiddleData(I + 1) = B
            '根据要求,数列: A,MiddleData(1),MiddleData(2),...,MiddleData(I),B,成等差数列,假设公差为d
            '即:除首尾2个数外,每一个数都是它前后2个数的等差中项
            '则MiddleData(I)=MiddleData(1)+(i-1)d,MiddleData(1)=A+d,
            '所以 B=MiddleData(I)+d=MiddleData(1)+id=A+d+id=A+(i+1)d
            Dim d As Single
            d = (B - A) / (I + 1)
            '打印中间结果
            For n = 1 To I
                Debug.Print
                Debug.Print "MiddleData(" & n & ") =" & A + d + (n - 1) * d
            Next
    End FunctionPrivate Sub Command1_Click()
            Call AvgNum(12, 18, 3)
    End Sub
      

  5.   

    Private Function AvgNum(ByVal A As Double, ByVal B As Double, ByVal L As Integer) As Variant
    Dim i As Double
    Dim j As Integer
    Dim Arr() As Double
    ReDim Arr(L) As Double
    i = (B - A) / (L + 1)
    For j = 1 To L
    Arr(j) = A + i * j
    If j > 0 Then
    End If
    Next
    AvgNum = Arr
    End Function
    Private Sub Form_Load()
    Form1.Show
    Dim Arr
    Dim i As Integer
    Arr = AvgNum(12, 18, 3)
    For i = 1 To UBound(Arr)
     Print Tab(4); "C" & i & "=" & Arr(i)
    Next
    End SubVB6.0下通过