平安科技笔试题:学生平均分排序

有没有老哥A掉这道题,,,可能我是真的菜,下面是我的代码用的java原生的排序,重写了Comparator的compareTo方法,不懂为什么只A了50% ——————想知道剩下的50%是什么情况orz~

import java.util.*;
public class Main {
    private static Scanner sc = new Scanner(System.in);
    public static void main(String[] args) {
        ArrayList<Stu> list = new ArrayList<>();
        while (sc.hasNextLine()) {
            String[] str = sc.nextLine().trim().split(" ");
            String name = str[0];
            int count = 0;
            int sum = 0;
            for (int i = 1; i < str.length; ++i) {
                sum += Integer.valueOf(str[i]);
                count += 1;
            }
            int avg = sum / count;
            list.add(new Stu(name, avg));
        }
        list.sort(Comparator.comparingInt(Stu::getAvg));
        for (Stu s : list) {
            System.out.println(s);
        }
    }
}
class Stu {
    private String name;
    private int avg;
    Stu(String name, int avg) {
        this.name = name;
        this.avg = avg;
    }
    public int getAvg() {
        return avg;
    } @Override public String toString() {
        return name + " " + avg;
    }
}
#平安科技##笔试题目#
全部评论
sum*1.0/count 试一下
点赞 回复 分享
发布于 2018-09-20 22:02
你的四舍五入有问题吧
点赞 回复 分享
发布于 2018-09-20 22:01
你那个平均分就求错了 四舍五入 int除法是向下取整
点赞 回复 分享
发布于 2018-09-16 22:46
降序排序,是不是写反了
点赞 回复 分享
发布于 2018-09-16 22:41
Math.round能过剩下的50
点赞 回复 分享
发布于 2018-09-16 22:39
我avg用double打印的一直过不了,最后交卷了才发现要打印成整型。。。感觉可能最后的结果要四舍五入打印。
点赞 回复 分享
发布于 2018-09-16 22:38
同只过了百分之50,感觉可能是那个如果分数相同按照输入顺序输出的原因
点赞 回复 分享
发布于 2018-09-16 22:36

相关推荐

真烦好烦真烦:牛友太有实力了
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务