0

配列オブジェクトの配列が渡され、配列内のオブジェクトの平均値を返すクラス内に静的メソッドを作成しようとしています。

public static double calcAverage() {
  int sum = 0;
  for (int i=0; i < people.length; i++)
            sum = sum + people[i];
  double calcAverage() = sum / people.length
     System.out.println(people.calcAverage());
}

コードでコンパイル エラーが発生していますが、正しい方向に向かっていますか?

4

3 に答える 3

1
public static double calcAverage() {
  int sum = 0;
  for (int i=0; i < people.length; i++)
            sum = sum + people[i];
  double calcAverage() = sum / people.length
     System.out.println(people.calcAverage());
}

変化する

  double calcAverage() = sum / people.length

  double average = sum / (double)people.length;

(新しい変数を宣言する正しい方法)

変化する

     System.out.println(people.calcAverage());

  return average;

(関数呼び出しの結果を出力したい場合は、常に関数の外で実行する必要があります。たとえばmain、関数を呼び出して返された結果を保存した後に実行します)

したがって、次のようになります。

public static double calcAverage() {
  int sum = 0;
  for (int i=0; i < people.length; i++)
  {
       sum = sum + people[i];
  }
  double average = sum / (double)people.length;
  return average;
}
于 2013-03-26T02:12:26.500 に答える
1

あなたの近く。ただし、いくつかの間違いが見られます。

まずあなたの合計=合計+人[i];

people[i] が返すオブジェクトは整数ではないため、オブジェクトを整数に追加しても機能しません。

次に、calcAverage メソッド内で calcAverage() を呼び出していますが、これはおそらくやりたいことではありません。これを行うことは再帰と呼ばれますが、calcAverage() の外でメソッドを呼び出す必要があると思います。

于 2013-03-26T02:12:28.547 に答える
1
// pass people as a parameter
public static double calcAverage(int[] people) {
   // IMPORTANT: this must be a double, otherwise you're dividing an integer by an integer and you will get the wrong answer
   double sum = 0;
   for (int i=0; i < people.length; i++) {
        sum = sum + people[i];
   }
   // remove the ()
   double result = sum / people.length;
   System.out.println(result);

   // return something
   return result;
}


// example
int[] myPeople = {1,2,3,4,5,6,7,8};
double myPeopleAverage = calcAverage(myPeople);
于 2013-03-26T02:18:31.303 に答える