首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >average (使用arraylist ) java

average (使用arraylist ) java
EN

Stack Overflow用户
提问于 2012-03-05 03:24:41
回答 6查看 8.3K关注 0票数 0

我试图显示学生的平均分数,但它显示了错误的数字,这是我尝试过的。任何帮助都将不胜感激。

代码语言:javascript
复制
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;
  }

} 
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-03-05 03:31:17

当然,你不是在计算平均值..在对所有值求和后,必须除以大小:

代码语言:javascript
复制
public double average()
{
     double average = 0.0;
     for (int i = 0; i < people.size(); i++)  {
         average += people.get(i).getMark() ; 
     }
     return average/people.size();
 }
票数 3
EN

Stack Overflow用户

发布于 2012-03-05 03:28:14

首先,get()是从0开始的,而不是从1开始。

其次,你需要将整个求和除以people.size()而不是i,否则第一个学生就会变得比第100个学生重要得多。

更新:,第三,当前的代码只考虑最后一个学生,你不这样认为吗?

票数 4
EN

Stack Overflow用户

发布于 2012-03-05 03:34:50

你需要在纸上完成你的代码。你在做一件非常奇特的事。拿一些纸,写下学生的示例数组(或者只是分数),然后一次一个迭代地完成循环。并回答以下问题

  • 循环开始时每个变量的值是多少?
  • 每个循环结束时每个变量的值是多少?
  • 如何用笔和纸计算平均值?
  • 如何将上面的点转换为for循环?是否所有的工作都需要在for循环中完成?

最后一点。应该注意,大小或数组中的第一个元素在索引0处,最后一个元素在索引( ArrayList -1)处。

例如:

代码语言:javascript
复制
index:   0    1    2
array: ['a', 'b', 'c']
size or length: 3
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9558057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档