0
public void calculatePercentage(int exam[][])
    {
        int perc = 0;
        for (int i = 0; i < examen.length; i++)
        {
            for (int[] score : exam)
                perc += score;
            perc /= exam.length;
        }
    }

こんにちは、私は本当にこれに行き詰まっています。パラメータ Exam[][] を指定して、新しい計算法 calculatePercentages を作成したいと考えています。double 配列の検査では、3 行の要素が保持されます。メソッドがしなければならないことは、各行の合計を単純に計算することです。答えはおそらく非常に簡単ですが、それを行う方法がわかりません。単一の配列の場合、コードは次のようになります。

double perc = 0;
    for(int score : exam)
    {
            perc += score;
    }
    perc /= (exam.length);
    return perc;

試験[][]は次のようになります。

|10 12 18 5 3 | |12 3 5 15 20 | |20 15 13 11 9 |

出力パーセンテージ [] は次のようになります。

{48,55,68} percent[] の各要素は、exam[] の 1 行の要素の合計です

4

2 に答える 2

3

double 配列の検査では、3 行の要素が保持されます。メソッドがしなければならないことは、各行の合計を単純に計算することです。

名前は意味がありませんが、やりたいことを実行します。

public int[] calculatePercentage(int exam[][]) {
    int[] sums = new int[exam.length];
    for (int i = 0; i < exam.length; i++) {
         int sum = 0;
         for (int j = 0; j < exam[i].length; j++) {
              sum += exam[i][j];
         }
         sums[i] = sum;
    }
    return sums;
}

また、double 配列はdouble[]、2 次元の int 配列について話しているint[][]

編集

Pshemoは、より短い解決策が可能であると指摘しました。

public int[] calculatePercentage(int exam[][]) {
    int[] sums = new int[exam.length];
    for (int i = 0; i < exam.length; i++) {
         for (int j = 0; j < exam[i].length; j++) {
              sums[i] += exam[i][j];
         }
    }
    return sums;
}

または単に

public int[] calculatePercentage(int exam[][]) {
    int[] sums = new int[exam.length];
    for (int i = 0; i < exam.length; i++)
         for (int j = 0; j < exam[i].length; j++)
              sums[i] += exam[i][j];
    return sums;
}

しかし、読みやすさのために、私はまだ最初のものを好みます。

于 2012-12-15T11:38:55.670 に答える
0
for (int i = 0; i < exam.length; i++) {
        int sum = 0;
        for (int j = 0; j < exam[i].length; j++) {
            sum += exam[i][j];
        }

    }

それぞれに使用

for (int x[] : exam) {
      for (int y : x) {

        sum += y;
      }
}
于 2012-12-15T11:37:51.973 に答える