2016-11-10 9 views
0

私のコードで、平均値を上回っている配列内の値が正しく印刷されないのを解明しようとしています。私は同様の問題を持つ別のユーザーのstackoverflowの例を見ましたが、それでも意味をなさない。私は平均以上の値の現在の出力を理解していません。平均数を超える配列内の数字を見つける

すべての配列値の計算平均を上回る値を配列に出力するにはどうすればよいですか?

私は助けていただきありがとうございます。

マイコード:

public class Inequality 
{ 
    public static void main(String[] args) 
    { 
     // list of incomes in thousands 
     int[] income = {2,10, 532, 4, 53, 28, 291, 38, 6, 17, 73, 21}; 
     int sum = 0; 
     int average; 
     int aboveAverage = 0; 

     for (int i = 0;i< income.length;i++) 
     { 
      sum = sum + income[i]; 
     } 
     average = sum/income.length; 
     System.out.println("Average of income array: " + average); 

     for (int i = 0; i < income.length; i++) 
     { 
      if (income[i]>average) 
      { 
       aboveAverage++; 
      } 
     } 
     System.out.println("There are " + aboveAverage + " numbers above the average."); 
     System.out.println("Range of numbers above the average: " + income); 
    } 
} 

マイ出力:

Average of income array: 89 
There are 2 numbers above the average. 
Range of numbers above the average: [[email protected] 
+2

アレイオブジェクト全体を印刷しています。あなたは「収入」に平均以上の数字が含まれると思いますか? –

+0

上記の平均値を計算するのと同様の方法で、ループ、 'if'ステートメント、' print'ステートメントを使って出力します。あるいは、すでに持っているループに 'print'ステートメントを追加するだけです。 – Andreas

答えて

-1

あなたは...あなたがする必要がある(私はそれはそれはと呼ばれるものだと思います)

System.out.println(Arrays.toString(array)); 
をデータ値を印刷しています

またはあなたのため

System.out.println(Arrays.toString(income)); 

これはうまくいくはずです!

System.out.println("Range of numbers above the average: " + income); 

印刷名はちょうどアレイの一部のアドレスではない任意の値を印刷する最後の行のように、アレイの

+0

これは、配列全体を出力するだけです。平均計算値を超えている配列の値を出力するために探しています。 – Aramza

+0

@Aramza次に、繰り返しを行い、平均以上のものだけを印刷する必要があります。または、それらを新しい配列にフィルタリングします。あなたが知っているのは、平均を上回るものの合計です - なぜ同時にそれらを印刷しないのですか? –

0

名は、ベースアドレスで有します。あなたが値を取得する必要があるのであれば、あなたは今、あなたは平均より大きいすべての値を印刷する希望についてこの

income[<index>] eg. income[1] , income[2] 

のように印刷することがあります。 平均と比較して印刷するだけです。 コードはここにあります。

for (int i = 0; i < income.length; i++) 
    { 
     if (income[i]>average) 
     { 
      aboveAverage++; 
      System.out.println("Number above the average: " + income[i]); 

     } 
    } 

私はそれが役に立ちそうです。

+0

簡単な説明はこの答えを改善するでしょう。 – Andreas

+0

コードは自明ですが、平均より上にある数字がいくつあるかを知っているので、別のものが印刷されているようです。すべての数値は、チェックicome [i]> averageでループ内に印刷することができます。 – Avi

+0

他に何かしたい場合。あなたの質問を更新してください。 – Avi

関連する問題