簡體   English   中英

我需要知道如何從具有二維整數數組和整數類型變量作為參數的函數中返回雙精度數組

[英]I need to know how to return an array of doubles from a function that has a 2D array of integers and a variable of type integer as parameters

我有一個視覺基礎程序,可以跟蹤每個樂隊每月的追隨者數量。 用戶將指定存在多少個頻段以及每個頻段遵循的月份數(假設所有音樂頻段的月份都相同)。 因此,我有一個動態的二維數組,它將存儲用戶輸入。 現在,我正在使用返回類型為double的數組的double類型的函數來計算每個樂隊的平均追隨者數量。 這是我到目前為止所擁有的,請您幫我一下:

 Private Function ComputeAve(ByVal Info(,) As Integer, ByVal size As Integer) As Double()

    Dim sum(size) As Integer
    Dim ave() As Double
    Dim r, c As Integer
    For r = 1 To bands
        For c = 1 To months
            sum(r) = sum(r) + Info(r, c)
            ave(r) = sum(r) / months 
        Next c
    Next r

    Return ave

End Function

我看到代碼無法正常工作的唯一原因是,您實際上從未通過設置將具有的elemts數量來實際創建ave數組。

假設info是一個數組,每個波段每個月都有一個元素,則不需要size,bands或months變量,該信息由數組的大小提供(可通過GetUpperBound方法獲得)。

我認為以下內容可以滿足您的要求。

Private Function ComputeAve(ByVal Info(,) As Integer) As Double()
    Dim ave(Info.GetUpperBound(0)) As Double

    For r As Integer = 0 To Info.GetUpperBound(0)
        For c As Integer = 0 To Info.GetUpperBound(1)
            ave(r) += Info(r, c)
        Next c
        ave(r) /= Info.GetUpperBound(1) + 1
    Next r

    Return ave
End Function

請注意,正如您對問題的評論所指出的那樣,集合可能比數組更有用,尤其是當您在創建數組/集合后可能需要添加新項目時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM