我试图显示学生的平均分数,但它显示了错误的数字,这是我尝试过的。任何帮助都将不胜感激。
import java.util.ArrayList;
class Course
{
private ArrayList<Student> people = new ArrayList<Student>();
// return the average mark in the course
public double average()
{
double average = 0.0;
int i = 0;
for (i = 1; i < people.size(); i++)
{
int tmark = people.get(i).getMark() ;
{
average = tmark / i;
}
}
return average;
}
} 发布于 2012-03-05 03:31:17
当然,你不是在计算平均值..在对所有值求和后,必须除以大小:
public double average()
{
double average = 0.0;
for (int i = 0; i < people.size(); i++) {
average += people.get(i).getMark() ;
}
return average/people.size();
}发布于 2012-03-05 03:28:14
首先,get()是从0开始的,而不是从1开始。
其次,你需要将整个求和除以people.size()而不是i,否则第一个学生就会变得比第100个学生重要得多。
更新:,第三,当前的代码只考虑最后一个学生,你不这样认为吗?
发布于 2012-03-05 03:34:50
你需要在纸上完成你的代码。你在做一件非常奇特的事。拿一些纸,写下学生的示例数组(或者只是分数),然后一次一个迭代地完成循环。并回答以下问题
最后一点。应该注意,大小或数组中的第一个元素在索引0处,最后一个元素在索引( ArrayList -1)处。
例如:
index: 0 1 2
array: ['a', 'b', 'c']
size or length: 3https://stackoverflow.com/questions/9558057
复制相似问题