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}百分比[]的每个元素是1行考试的元素之和[]
答案 0 :(得分: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;
}
但我仍然更喜欢第一个,因为它的可读性。
答案 1 :(得分: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;
}
}