Java 如何修复此数组中的For循环?

Java 如何修复此数组中的For循环?,java,arrays,Java,Arrays,下面是作业说明:“数组testGrades包含NUM_VALS测试分数。编写一个for循环,将sumExtra设置为收到的总额外分数。满分为100,因此任何超过100的都是额外分数。例如:如果testGrades={101,83,107,90},那么sumExtra=8,因为1+0+7+0是8。” 该程序几乎可以工作,除了输入以下输入:{101、110、103、100}。它的产量不是14(1+10+3=14),而是4。代码如下: import java.util.Scanner; public

下面是作业说明:“数组testGrades包含NUM_VALS测试分数。编写一个for循环,将sumExtra设置为收到的总额外分数。满分为100,因此任何超过100的都是额外分数。例如:如果testGrades={101,83,107,90},那么sumExtra=8,因为1+0+7+0是8。” 该程序几乎可以工作,除了输入以下输入:{101、110、103、100}。它的产量不是14(1+10+3=14),而是4。代码如下:

import java.util.Scanner;

public class SumOfExcess {
    public static void main (String [] args) {
      Scanner scnr = new Scanner(System.in);
      final int NUM_VALS = 4;
      int[] testGrades = new int[NUM_VALS];
      int i;
      int sumExtra = -9999; // Assign sumExtra with 0 before your for loop

      for (i = 0; i < testGrades.length; ++i) {
         testGrades[i] = scnr.nextInt();
      }

      /* Your solution goes here  */
      sumExtra = 0;
      for (i = 0; i < testGrades.length; ++i) {
        if (testGrades[i] >= 101) {
            sumExtra = testGrades[i] - 100;  
            ++sumExtra;
        }
     }

  System.out.println("sumExtra: " + sumExtra);
  }
}
import java.util.Scanner;
公共类消费支出{
公共静态void main(字符串[]args){
扫描仪scnr=新扫描仪(System.in);
最终整数=4;
int[]testGrades=新int[NUM_VALS];
int i;
int-sumtextra=-9999;//在for循环之前为sumtextra分配0
对于(i=0;i=101){
sumExtra=试验等级[i]-100;
++萨姆特拉;
}
}
System.out.println(“sumtextra:+sumtextra”);
}
}

您每次都在重新分配sumExtra。所以你想用
sumtextra+=testGrades[i-100]
和摆脱
++sumExtra

您不应执行以下操作:

++sumExtra;
你应该在这里求和:

sumExtra += testGrades[i] - 100; 
最终代码:

sumExtra = 0;
for (i = 0; i < testGrades.length; ++i) {
    if (testGrades[i] >= 101) {
        sumExtra += testGrades[i] - 100;  
    }
}
sumtextra=0;
对于(i=0;i=101){
sumExtra+=试验等级[i]-100;
}
}

能否请您修改您的标题,以便将来当您再次遇到与此处相同的问题时,您能够轻松准确地找到此问题?否则,这将破坏该网站的目的,该网站将成为可搜索的编程问题存储库。