数组迭代:多余的总和(Java)
我的任务是把超过100分的分数加起来。作业说明如下: 数组testGrades包含NUM\u VALS测试分数。编写一个for循环,将sumExtra设置为收到的总额外积分。满分是100分,所以超过100分的都是额外的学分。例如:如果testGrades={101,83,107,90},那么sumtextra=8,因为1+0+7+0是8 我目前的代码是:数组迭代:多余的总和(Java),java,Java,我的任务是把超过100分的分数加起来。作业说明如下: 数组testGrades包含NUM\u VALS测试分数。编写一个for循环,将sumExtra设置为收到的总额外积分。满分是100分,所以超过100分的都是额外的学分。例如:如果testGrades={101,83,107,90},那么sumtextra=8,因为1+0+7+0是8 我目前的代码是: import java.util.Scanner; public class SumOfExcess { public stati
import java.util.Scanner;
public class SumOfExcess {
public static void main (String [] args) {
final int NUM_VALS = 4;
int[] testGrades = new int[NUM_VALS];
int i = 0;
int sumExtra = -9999; // Assign sumExtra with 0 before your for loop
testGrades[0] = 101;
testGrades[1] = 83;
testGrades[2] = 107;
testGrades[3] = 90;
sumExtra = 0;
for (i = 0; i < NUM_VALS; ++i){
if (testGrades[i] > 100){
sumExtra = (testGrades[i] % 100);
}
}
System.out.println("sumExtra: " + sumExtra);
return;
}
}
问题如下
sumExtra = (testGrades[i] % 100);
您总是为sumExtra赋值,而不是求和。你应该把它换成
sumExtra += (testGrades[i] % 100);
也就是说,您还应该用减号替换模运算,以使代码在大于199的值下正常工作
您还可以使用流:
sumExtra = IntStream.of(testGrades).filter(t -> t > 100).map(t -> t - 100).sum();
问题是什么?对不起!我不太明白如何将%之后的超额加起来。我想你在找+=Change-sumtera=testGrades[I]%100;至sumExtra+=testGrades[i]%100;成功了!非常感谢你。