私はAPコンピュータサイエンスクラスのこのプログラムを完了することになっています: 2倍の配列をとり、配列を左に塗りつぶすための平均より大きい値。上書きされていない平均より小さい値は0に設定する必要があります。まず、平均を計算してaverageという名前の変数に格納します。 例:配列[1.0、1.0、3.0 4.0]、平均値は[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]);
}
}
に2.25転換されるであろうし、出力は次のとおり 0.0 0.0 3.0 4.0 5.0
私は数時間のためにこれに取り組んできた、まだあるべき所望の出力を得ることができません:3.0 4.0 5.0 0.0 0.0
誰もが私が間違ってやっているか知っていますか?第二段階のために
十分に簡単であることを願っていますが、 'ARR信じて何をすべきか[I] = ARR [i]は'行い、そしてなぜ
j
をインクリメントあなたはそれが何かを信じているまったく?値をある場所から別の場所に移動する必要がある場合は、索引が必要であるとは思わないでください。 --- *ヒント:* 2つのインデックス変数が必要です。 – Andreas
'arr [i] = arr [i];'? – Danh
これを2段階で実行します。ゼロに設定します。値をシフトします。 – dreamcrash