gpt4 book ai didi

java - 如何用Java编写一个对六个正整数求平均值的方法?

转载 作者:行者123 更新时间:2023-12-02 09:08:40 25 4
gpt4 key购买 nike

该方法应平均六个正整数。负数或零整数不应包含在平均值中。如果所有数字均无效,则返回 -1。有没有办法缩短这段代码?

public float averageSix( int a, int b, int c, int d, int e, int f ) {
if( a < 0 ) { a = 0; }
if( b < 0 ) { b = 0; }
if( c < 0 ) { c = 0; }
if( d < 0 ) { d = 0; }
if( e < 0 ) { e = 0; }
if( f < 0 ) { f = 0; }
float aver = ( ( a + b + c + d + e + f ) / ( ( a / a ) + ( b / b )
+ ( c / c ) + ( d / d ) + ( e / e ) + ( f / f ) ) );
if( aver = 0 ) { aver = -1; }
return aver;
}

最佳答案

您可以使用 arrays 来简化代码

这基本上是您精简为使用数组的方法。我的计算仅考虑有效值(即,如果只有 3 个数字有效,那么我只将总和除以 3 的平均值),您可能需要更改此设置...

public float averageSix(int a, int b, int c, int d, int e, int f) {
float sum = 0;
float usedValues = 0;
int[] values = new int[]{a, b, c, d, e, f};
for (int value : values) {
if (value >= 0) {
usedValues++;
sum += value;
}
}

float average = -1;
if (sum > 0) {
average = sum / usedValues;
}

return average;
}

nb- 正如 Ted Hopp 所指出的,values 声明可以缩短为

int[] values = {a, b, c, d, e, f};

任何让我们不必输入任何内容的东西都不会造成伤害;)

更高级一点但仍然有效,您可以使用 varargs ,它允许您传入任意数量的值(不仅仅是六个)...

public float average(int... values) {
float sum = 0;
float usedValues = 0;
for (int value : values) {
if (value >= 0) {
usedValues++;
sum += value;
}
}

float average = -1;
if (sum > 0) {
average = sum / usedValues;
}

return average;
}

关于java - 如何用Java编写一个对六个正整数求平均值的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18863766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com