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 [] [],我想创建一个新的mathod calculatePercentages。双数组考试包含 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

双数组考试包含 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[],你说的是二维 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 回答