[英]How to calculate average of an array for only entered values
我正在嘗試僅計算非 0 值的數組平均值。我的數組大小為 15,因為它最多可以包含 15 個值。
當我計算平均值時,它使用所有 15 個值,即使其中 12 個在開始時為 0。 如何防止 0.0 被考慮?
for(double element: majorA) {
Sum += element;
}
average = sum / majorA.length;
System.out.printf("%.5f\n", average);
該數組也不是一個定義的集合,而是取決於用戶輸入的內容。 初始數組為:
double[] majorA = new double[15];
然后根據需要獲取值:
majorA[0] = num1;
majorA[1] = num2;
...
我只想添加一個計數器來跟蹤並使用它而不是數組長度。
int count = 0;
for(double element: majorA) {
if(element > 0.0) {
Sum += element;
count += 1;
}
}
average = sum / count;
System.out.printf("%.5f\n", average);
你可以在一行中完成
Arrays.stream(majorA).filter(d -> d != 0).average().orElse(0)
這將過濾掉所有為 0 的值並計算平均值。 由於.orElse(0)
即使數組中沒有任何剩余內容也會顯示 0
您可以在循環中使用計數器,該計數器僅在數字 !=0 時才會增加
int count = 0;
for(double element: majorA) {
if(element != 0.0){
sum += element;
count++;
}
}
average = (count == 0) ? 0 : sum / count;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.