亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用二維數組調用函數

如何使用二維數組調用函數

米琪卡哇伊 2023-04-26 14:28:03
我正在嘗試創建一個二維數組,然后找到數組內所有元素的平均值 float[][] dArr = {                      {1.0f,2.0f},                      {2.0f,2.0f}                    };    System.out.println(average(dArr[2][2]));    }    static double average (float dArr[][]){        double sum=0;        for(int i=0;i<dArr.length;i++)            for(int j=0;i<dArr[i].length;j++)             sum=+dArr[i][j];        return sum/dArr.length;    }但是一個錯誤說有不兼容的類型:float cannot be converted to float[][]
查看完整描述

3 回答

?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

調用時并沒有真正將二維數組傳遞給函數
System.out.println(average(dArr[2][2]));

相反,您只傳遞了 1 個浮點數,或者至少您會傳遞,但是索引 [2][2] 上的元素超出了范圍。因此,將您的函數調用更改為
System.out.println(average(dArr));

并且數組應該正確傳遞給函數。


查看完整回答
反對 回復 2023-04-26
?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

一些東西。dArr.length 只計算數組中的行數,而不是項目。所以你應該在循環中創建一個計數器來除以,或者使用上面建議的乘積。將總和改為+= dArr[i][j];使用 =+ 不起作用。在你的 for 循環中你想使用 ++i 和 ++j,而不是 i++ 和 j++。在您的嵌套循環中,您正在測試 i 而不是 j。這是功能代碼


public static void main(String[] args) {

   float[][] dArr = {

       {1.0f, 2.0f},

       {2.0f, 2.0f}

   };

   System.out.println(average(dArr));

}


static double average (float dArr[][]){


    double sum = 0;

    double count = 0;

    for(int i = 0; i < dArr.length; ++i){

        for(int j = 0; j < dArr[i].length; ++j){

            sum += dArr[i][j];

            count += 1;

            System.out.println(sum);

        }

    }

    return sum/count;

}


查看完整回答
反對 回復 2023-04-26
?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

您正在將數組的一個值dArr[2][2](無論如何都超出范圍;見下文)傳遞給您的函數。您需要將整個數組傳遞給 function average。此外,您需要更改函數的方法簽名:


float[][] dArr = {

                      {1.0f,2.0f},

                      {2.0f,2.0f}

                 };

System.out.println(average(dArr));


static double average (float[][] dArr){

    double sum=0;

    for(int i=0;i<dArr.length;i++){

        for(int j=0;i<dArr[i].length;j++){

            sum=+dArr[i][j];

        }

    }

    return sum / (dArr.length * dArr[0].length);

}

您會注意到最后一行的變化。要獲得數組中元素的總數,我們必須將行乘以列。dArr.length給出行數,同時dArr[0].length給出第一行的列數,每一行都相同。


另請注意,java 中的數組是零索引的。因此,數組中的最后一個元素[1][1]沒有索引[2][2]。你在你的函數體中做對了,太棒了!


查看完整回答
反對 回復 2023-04-26
  • 3 回答
  • 0 關注
  • 185 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號