所以我的任務是爲我的AP計算機科學課程完成該程序: 編寫需要一個雙精度數組的代碼並移動所有值大於平均值以將數組填充到左側。任何小於未被寫入的平均值的值應被設置爲0.首先計算平均值並將其存儲在名爲平均值的變量中。 示例:陣列[1.0,1.0,3.0 4.0],平均值2.25會被變換爲[3.0,4.0,0.0,0.0]Java:替換數組中的值並移動數組中的元素
public class Array {
public static void main(String[] args) {
double[] arr = {
1.0, 2.0, 3.0, 4.0, 5.0
};
double average;
double sum = 0.0;
for (int i = 0; i < arr.length; i++)
sum += arr[i];
average = sum/arr.length;
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= average)
arr[i] = arr[i];
else if (arr[i] < average) {
arr[i] = 0.0;
arr[i] = arr[i];
for (int t = i + 1; t < arr.length; t++) {
if (arr[i] >= average)
arr[i] = arr[i];
}
}
}
for (int y = 0; y < arr.length; y++)
System.out.println(arr[y]);
}
}
並且輸出是: 0.0 0.0 3.0 4.0 5.0
我一直在這方面的工作了幾個小時,仍然無法得到需要的結果應該是:3.0 4.0 5.0 0.0 0.0
任何人都知道我做錯了嗎?
你相信什麼'改編[i] =改編[I]'做,爲什麼做你相信它是任何事情在所有?如果你必須將一個值從一個地方移到另一個地方,你不覺得索引需要......你知道.... *不同*? --- *提示:*您需要兩個索引變量。 – Andreas
'arr [i] = arr [i];'? – Danh
分兩步做;設置爲零;改變數值。 – dreamcrash