2

メソッドは、6 つの正の整数を平均する必要があります。負またはゼロの整数は平均に含めるべきではありません。すべての数値が無効な場合は -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;
}
4

2 に答える 2

4
public float average(int[] numbers) {
    int sum = 0;
    int count = 0;
    for(int i = 0; i< numbers.length; i++)
      if(numbers[i] > 0) {
          sum += numbers[i];
          count++;
      }

    if(count == 0)
        return -1; // returns -1 if none is greater than 0

    return (float)sum/count;
}
于 2013-09-18T04:26:50.293 に答える