• java基础题——二维数组的基本应用


    1.设计程序按照各个学生的 Java 成绩进行排序 ( 降序 )

    2.设计程序,根据学生总成绩进行排序(降序排列),并输出学生姓名、每门课程的名称和该学生的成绩、该学生的总成绩

        public static void main(String[] args) {
            String[] names = {"安琪拉", "王昭君", "蔡文姬", "妲己", "张良"};
            String[] courses = {"C++", "Java", "Python"};
            int[][] scores = {
                    {90, 89, 75},
                    {59, 40, 100},
                    {100, 99, 80},
                    {80, 61, 61},
                    {60, 100, 99}
            };
    
            for( int i = 0 ; i < scores.length ; i++ ){
                System.out.print( names[ i ] + " => " ); // 输出学生姓名
                for( int j = 0 ; j < scores[ i ] .length ; j++ ){
                    System.out.print( courses[ j ] + ":");// 输出课程名称
                    System.out.print( scores[ i ][ j ] ); // 输出课程成绩
                    if( j < scores[ i ] .length - 1 ) {
                        System.out.print( " , " );
                    }
                }
                System.out.println();
            }
    
            // 1. 按照各个学生的 Java 成绩进行排序(降序)
            for (int i = 0; i < scores.length - 1; i++) {
                for (int j = 0; j < scores.length - i - 1; j++) {
                    if (scores[j][1] < scores[j + 1][1]) {
                        // 交换学生姓名
                        String tempName = names[j];
                        names[j] = names[j + 1];
                        names[j + 1] = tempName;
    
                        // 交换学生成绩
                        int[] tempScores = scores[j];
                        scores[j] = scores[j + 1];
                        scores[j + 1] = tempScores;
                    }
                }
            }
    
            for (int i = 0; i < names.length; i++) {
                System.out.println(names[i] + " => " + courses[1] + ": " + scores[i][1]);
            }
            System.out.println();
    
            // 2. 根据学生总成绩进行排序(降序排列)
           int[] sumScore = new int[scores.length];
    
            for (int i = 0; i < scores.length; i++) {
                int sum = 0;
                for (int j = 0; j < scores[i].length; j++) {
                    sum += scores[i][j];
                }
                sumScore[i] = sum;
            }
    
            // 对总分数组排序
            int[] sumArr = new int[scores.length];
    
            for (int i = 0; i < scores.length; i++) {
                int sum = 0;
                for (int j = 0; j < scores[i].length; j++) {
                    sum += scores[i][j];
                }
                sumArr[i] = sum;
            }
    
            // 选择排序(降序)
            for (int i = 0; i < scores.length - 1; i++) {
                int max = i;
                for (int j = i + 1; j < scores.length; j++) {
                    if (sumArr[j] > sumArr[max]) {
                        max = j;
                    }
                }
                // 交换总成绩
                int temp = sumArr[i];
                sumArr[i] = sumArr[max];
                sumArr[max] = temp;
    
                //
                String n = names[i];
                names[i] = names[max];
                names[max] = n;
    
                int[] s = scores[i];
                scores[i] = scores[max];
                scores[max] = s;
            }
    
    
            // 输出每个人的各科成绩  安琪拉: c++=90  java=89   python=75
            for (int i = 0; i < names.length; i++) {
                System.out.print(names[i] + ": ");
                for (int j = 0; j < scores[i].length; j++) {
                    System.out.print(courses[j] + "=" + scores[i][j] + "\t");
                }
                System.out.println(sumArr[i]);
                System.out.println();
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    解释:
    1. 定义一个字符串数组names,存储5个学生的姓名;
    2. 定义一个字符串数组courses,存储3门课程的名称;
    3. 定义一个二维整数数组scores,存储了每个学生在每门课程的成绩;
    4. 遍历scores数组,按照降序输出每个学生的姓名、课程名称和成绩;
    5. scores数组进行排序,按照学生的Java成绩降序排列;
    6. 输出排序后的学生姓名、课程名称和成绩;
    7. 计算每个学生的总成绩,并将其存储在sumScore数组中;
    8. sumScore数组进行选择排序,按照降序排列;
    9. 输出排序后的学生姓名、各科成绩和总成绩。
  • 相关阅读:
    centos 部署 xray 漏洞扫描器
    学习如何编码
    C语言--每日五道选择题--Day12
    关于电脑一天24小时多少度电电脑的一天用电量计算
    企业电子招投标采购系统源码之电子招投标的组成
    Flink流式框架过程问题
    Mybatis架构,SqlSessionFactory源码分析
    颜色学习总结
    【Python实战】WIFI密码小工具,甩万能钥匙十条街,WIFI任意连哦~(附源码)
    EMQX 安装(数据挂载必要目录)以及SpringBoot使用
  • 原文地址:https://blog.csdn.net/m0_68154641/article/details/133472041