| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3344 人关注过本帖
标题:学生成绩按总分降序,总分相同的按数学分数降序,按数学再排序不会做了
只看楼主 加入收藏
ma1976222027
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-4-21
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
学生成绩按总分降序,总分相同的按数学分数降序,按数学再排序不会做了
//学生成绩按总分降序,总分相同的按数学分数降序,按数学再排序不会做了

public class student {
    public static void main(String[] args) {
        student x1 = new student("张三", 1999, 56, 65, 66, 95);
        student x2 = new student("国人", 3999, 76, 65, 86, 96);
        student x3 = new student("复合", 4999, 65, 50, 70, 50);
        student x4 = new student("法规", 5999, 66, 75, 65, 76);
        student[] xs = { x1, x2, x3, x4 };

        for (int j = 0; j < xs.length; j++) {
            for (int i = j; i < xs.length; i++) {

                if ((xs[j].get化学() + xs[j].get数学() + xs[j].get英语() + xs[j]
                        .get语文()) < (xs[i].get化学() + xs[i].get数学()
                        + xs[i].get英语() + xs[i].get语文())) {
                    student xx = xs[j];
                    xs[j] = xs[i];
                    xs[i] = xx;
                }
            }
        }
        for (int j = 0; j < xs.length; j++) {
            for (int i = j; i < xs.length; i++) {

                if ((xs[j].get化学() + xs[j].get数学() + xs[j].get英语() + xs[j]
                        .get语文()) == (xs[i].get化学() + xs[i].get数学()
                        + xs[i].get英语() + xs[i].get语文())
                        || (xs[j].get数学() < xs[i].get数学())) {

                    /*
                     * if (xs[j].get数学() < xs[i].get数学()) { student xx = xs[j];
                     * xs[j] = xs[i]; xs[i] = xx; }
                     */
                }
            }
            }// }
            System.out
                    .println("---------------------------------------------------------------");
            System.out.println("姓名\t学号\t数学\t化学\t语文\t英语\t总分\t");

            for (student sp : xs) {
                System.out.println(sp.get姓名() + "\t" + sp.get学号() + "\t"
                        + sp.get数学() + "\t" + sp.get化学() + "\t" + sp.get语文()
                        + "\t" + sp.get英语() + "\t"
                        + (sp.get化学() + sp.get数学() + sp.get英语() + sp.get语文())
                        + "\t");
        }
    }
}
搜索更多相关主题的帖子: 总分 降序 数学 student get 
2018-04-21 16:29
静水且流深
Rank: 5Rank: 5
等 级:贵宾
威 望:11
帖 子:60
专家分:319
注 册:2017-7-7
收藏
得分:20 
类名首字母大写,方法名不要用中文。。。

不过是爱情,又能走多久
2018-04-21 20:05
静水且流深
Rank: 5Rank: 5
等 级:贵宾
威 望:11
帖 子:60
专家分:319
注 册:2017-7-7
收藏
得分:0 
学生成绩按总分降序,总分相同的按数学分数降序,按数学再排序不会做了

再按数学降序?

不过是爱情,又能走多久
2018-04-21 20:22
ma1976222027
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-4-21
收藏
得分:0 
comparator实现接口,
int ret = a.sum().compateTo(b.su) ,
if(ret ==0 ){ return a.数学 compareTo b.数学}
else return ret ;
2018-04-23 11:26
ma1976222027
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2018-4-21
收藏
得分:0 
总分相同的按数学分数降序。这里是一个if-else的判断。你要在else里再判断一次。第二个嵌套循环不需要。第一个嵌套循环里的第二层这么写
if ((xs[j].get化学() + xs[j].get数学() + xs[j].get英语() + xs[j].get语文())
     < (xs[i].get化学() + xs[i].get数学() + xs[i].get英语() + xs[i].get语文())
    ) {
    student xx = xs[j];
    xs[j] = xs[i];
    xs[i] = xx;
}else if(xs[j].get化学() + xs[j].get数学() + xs[j].get英语() + xs[j].get语文()
     == xs[i].get化学() + xs[i].get数学() + xs[i].get英语() + xs[i].get语文()){
    if(xs[j].get数学() < xs[i].get数学();){
        student xx = xs[j];
        xs[j] = xs[i];
        xs[i] = xx;
    }
}
2018-04-23 11:26
快速回复:学生成绩按总分降序,总分相同的按数学分数降序,按数学再排序不会做了 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017841 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved