簡體   English   中英

打印超過特定值的數組值

[英]Print array values above a certain value

我正在構建的方法應該打印高於方法中平均值的所有值。 我已經構建了計算平均值的方法,然后只打印高於該數量的值。

但是它會打印出積極的值。

int total = 0;
    for (int i = 0; i < intList.length; i++)
    {
        total += intList[i]; 
        {
            if (intList[i] > intList[total]) 
            {
                System.out.println(intList[i] + "\t");
            }
        }
    }


    return total;

我如何制作它而不是打印所有正面,它只打印陣列中的值高於數組中的平均值?

你需要兩個不同的循環。 一個將所有數字加在一起得到總數。 然后你需要得到該總數的平均值。 然后再次循環檢查並打印

你必須循環2次,一次用於計算平均值,然后當你得到總計算時,你必須改變,如果比較。 intList[i] > intList[total]intList[i] > total

示例:

public static void main(String args[]){
    int[] intList = {1,2,3,4,5,6,7,8,9,10};
    int total = 0;
    // first loop calculate 
    for (int i : intList){
      total += i; 
    }

    double average = total / (double)intList.length;//take care array can't be empty.

    System.out.println("average :"+ average);    

    //then show 
    for(int i : intList){
        if (i > average){
          System.out.println(i + "\t");
        }        
    }
}
public static void main(String[] args) {
    int[] values = new int[] { 1, 5, 2, 6, 3, 7, 4, 8 };

    double sum = 0;
    for (int value : values)
        sum += value;

    double avg = sum / values.length;

    System.out.printf("AVG = %.2f\n----------\n", avg);

    for (int value : values) {
        if (value > avg)
            System.out.println(value);
    }
}

輸出:

AVG = 4.50
----------
5
6
7
8

上面的答案固定它,你的第二個循環不是將它與平均值進行比較,而是將其與總數進行比較。 首先需要一個循環來獲得數組的平均值,然后需要第二個循環來測試數組的平均值。

for (int i = 0;i < array.count; i++){
    total = total + array[i]
}
average = total / array.count
for (int i = 0;i < array.count; i++){
    if (array[i]>total){
       print
    }
}

有些偽代碼可以讓你去。

暫無
暫無

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

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