public class main {
public static void main(String[] args) {
aboveAverageTester();
}
public static int aboveAverage(int a, int b, int c, int d, int e, int f) {
//This method computes the average of the parameters
//and then returns how many of the parameters are above the average.
int avg = (a + b + c + d + e + f)/6;
int above = 0;
if (a > avg) {
return a;
}else if (b > avg) {
return b;
}else if (c > avg) {
return c;
}else if (d > avg) {
return d;
}else if (e > avg) {
return e;
}else if (f > avg) {
return f;
}else{
return a + b + c + e + f;
}
}
public static int aboveAverageTester() {
int aboveAverage = aboveAverage(10, 10, 10, 10, 45, 50);
System.out.println(aboveAverage);
return aboveAverage;
}
}
私はaboveAverageメソッドのロジックが完全にオフになっていることは知っていますが、平均以上の数のパラメータが返されるときに問題が発生します。別のメソッドに戻る平均値を上回る数値を計算する
私のコードからは、それぞれの後にa、b、cなどのように戻ってくると、それはちょうど1のインスタンスであり、平均よりも大きい他の人のリストに追加されないと思います。
私はこの方法では何も印刷せずに、ロジックのみをプリフォームしようとしています。
私は、上記の方法の一番下で、a、b、c、d、e、fをすべて追加して、それらからリストを作成するのではなく、ちょっと混乱していることを知っています。
誰も私にこのアプローチにどのような考えを与えることができますか?
そのままですが、これは、「平均よりも上のパラメータの数」ではなく、「平均よりも上のパラメータの数」または「存在しない場合の合計」を返します(コメントによると)。 このような素晴らしい '' above = 0''変数を使用して、平均以上の変数ごとに+1を加えて、それを最後に返します。 ああ、条件がfalseのときに '' if(...)... else'ブランチのelseブランチが_only_であることを忘れないでください。そうすれば、 '' a> avg''、条件は決してチェックされません。 – Heinrich
「それらからリストを作成する」を試しましたか? – Bernat