我需要找到多个作业值的偏差。为了做到这一点,我需要存储一个变量作业,即在 for 循环中,因此每次执行时它都会自行删除。此外,为了存储单独的作业得分值,我需要的变量数量是未知的,所以我不能只列出变量列表。我认为我需要做的是做一个数组列表,但我不确定我是否做得对。
这是包含我创建的数组的方法的代码...
public double computeHomeworkDeviation(int homework){
int[] homeworkScore = new int[totalStudents];
if(computeHomeworkDeviationCounter < totalStudents){
homeworkScore[computeHomeworkDeviationCounter] = homework;
computeHomeworkDeviationCounter++;
}
else{
for(int k = 1; k <= totalStudents; k++){
top += Math.pow(homeworkScore[totalStudents - k] - homeworkAverage, 2);
}
homeworkDeviation = Math.sqrt(top / totalStudents);
}
return homeworkDeviation;
}
此方法被调用到一个 for 循环并调用需要存储在数组列表中的作业变量的参数。我有什么不工作,我做错了什么?(我不相信数组值甚至被存储)
编辑:我现在把它分成两种方法。
设置数组方法...
public void setHomeworkArray(int homework){
homeworkScore[l] = homework;
l++;
}
计算作业偏差方法...
public double computeHomeworkDeviation(int homework){
for(int k = 1; k <= totalStudents; k++){
top += Math.pow(homeworkScore[totalStudents - k] - homeworkAverage, 2);
}
homeworkDeviation = Math.sqrt(top / totalStudents);
return homeworkDeviation;
}
我仍然收到 ArrayOutOfBoundsException 错误。