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

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

在數組旁邊顯示平均值

在數組旁邊顯示平均值

眼眸繁星 2023-12-13 17:11:06
我是 Java 新手,所以很抱歉。我有兩個數組:int[] grades = {64,55,45,67,65,88};String[] unitCode = {"APP:","BSAD:","CF","DAD:","N&CS:","POP:"};我需要將每一個都放在一起形成:[APP:64, BSAD:55, CF45, DAD:67, N&CS:65, POP:88]我已經成功地用這段代碼實現了這一點:    public String[] unitMarks(int[] grades, String[] unitCode)     {        double sum = 0;        for (double i : grades)        sum += i;        double average = (sum/grades.length);            for (int i = 0; i <grades.length; i++)            {                String combination = unitCode[i]+grades[i];                unitCode[i] = combination;        }            return unitCode;    }但我還需要在最后顯示平均成績,所以應該說:[APP:64, BSAD:55, CF:45, DAD:67, N&CS:65, POP:88, Average:64.0]我已經編寫了用于查找成績數組平均值的代碼。我只是在使用組合數組返回平均值時遇到問題(并且還在其之前顯示“平均值:”)。我嘗試過做類似的事情 -String includedAverage = unitCode+" Average:"+average;return includedAverage;但隨后它開始說它無法從 String 轉換為 String[]。如果我將方法返回類型更改為 String 它不起作用:System.out.println(Arrays.toString(myArrays.unitMarks(grades, unitCode)));任何幫助或指示都會很棒。謝謝。
查看完整描述

3 回答

?
www說

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

您可以添加一個比數組多一個空間的結果數組unitcode,并將值分配給它,而不是修改輸入:


public String[] unitMarks(int[] grades, String[] unitCode) {

    double sum = 0;

    for (double i : grades) {

        sum += i;

    }

    double average = (sum / grades.length);

    String[] result = new String[grades.length +1];

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

        String combination = unitCode[i] + grades[i];

        result[i] = combination;

    }

    result[result.length-1]= "Average:"+average;

    return result;

}


查看完整回答
反對 回復 2023-12-13
?
HUWWW

TA貢獻1874條經驗 獲得超12個贊

有兩種方法可以做到這一點。1. 使用ArrayList,當向其中添加元素時,它的大小會增加


public List<String> unitMarks(int[] grades, String[] unitCode) 

{

    List<String> unitCodeArrayList = new ArrayList<String>();

    double sum = 0;

    for (double i : grades)

    sum += i;

    double average = (sum/grades.length);


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

        {

            String combination = unitCode[i]+grades[i];

            unitCodeArrayList.add(combination);


         }

        unitCodeArrayList.add("Average:"+average);

        return unitCodeArrayList;

}

使用原始數組,但以這種方式附加到它(因為我不確定它的大小是多少)


public String[] unitMarks(int[] grades, String[] unitCode) 

{

double sum = 0;

for (double i : grades)

sum += i;

double average = (sum/grades.length);

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

{

        String combination = unitCode[i]+grades[i];

        unitCode[i] = combination;

}

    String[] resUnitCode = appendArray(unitCode, "Average:"+average);

    return resUnitCode;

}

private String[] appendArray(String[] array, String x){

String[] result = new String[array.length + 1];

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

    result[i] = array[i];

result[result.length - 1] = x;

return result;

}


查看完整回答
反對 回復 2023-12-13
?
喵喔喔

TA貢獻1735條經驗 獲得超5個贊

如果只需要顯示數值,可以使用 Stream 計算平均值并一次性顯示:


private void displayGradesAndAverage(int[] grades, String[] unitCode) {

    IntStream.range(0, grades.length)

            .peek(i -> System.out.print(unitCode[i] + grades[i] + ", "))

            .map(i -> grades[i])

            .average()

            .ifPresent(avg -> System.out.println("Average:" + avg));

}


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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