小心! 2020-12-12 14:25 采纳率: 57.1%
浏览 2283
已采纳

java数组练习,有 5 个学生,每个学生的数据包括学号、班级、姓名、三门课成绩。

有 5 个学生,每个学生的数据包括学号、班级、姓名、三门课成绩。从键盘输入5 个学生数据,要求打印出每个学生三门课的平均成绩,以及平均分最高分学生的所有数据。

  • 写回答

10条回答 默认 最新

  • 晨曦之光Wing 2020-12-12 18:51
    关注
    import java.util.Scanner;
    
    public class CalculateScore {
        public static void main(String[] args) {
            System.out.println("请依次输入5个学生的数据:学号、班级、姓名、三门课成绩(以空格隔开)");
            Scanner scanner = new Scanner(System.in);
            // 5行7列,最后一列用来存平均成绩
            Object[][] array = new Object[5][7];
            int enterCount = 0;
            while (enterCount < 5) {
                String line = scanner.nextLine();
                String[] strings = line.split(" ");
    
                array[enterCount][0] = strings[0];
                array[enterCount][1] = strings[1];
                array[enterCount][2] = strings[2];
    
                double score1 = Double.parseDouble(strings[3]);
                array[enterCount][3] = score1;
    
                double score2 = Double.parseDouble(strings[4]);
                array[enterCount][4] = score2;
    
                double score3 = Double.parseDouble(strings[5]);
                array[enterCount][5] = score3;
    
                double avgScore = (score1 + score2 + score3) / 3;
                array[enterCount][6] = avgScore;
                enterCount++;
            }
    
            double maxAvgScore = (double) array[0][6];
            int maxAvgScoreStuIndex = 0;
            for (int index = 0; index < array.length; index++) {
                double score = (double) array[index][6];
                if (score > maxAvgScore) {
                    maxAvgScore = score;
                    maxAvgScoreStuIndex = index;
                }
            }
    
            String format = "%.2f"; // 保留两位小数
            System.out.println("所有学生的平均成绩如下:");
            for (int index = 0; index < array.length; index++) {
                System.out.println(
                        array[index][2] + ": " + String.format(format, (double) array[index][6]));
            }
    
            System.out.println("平均分最高分学生数据如下:");
            StringBuilder str = new StringBuilder();
            for (int index = 0; index < array[maxAvgScoreStuIndex].length; index++) {
                if (index == array[maxAvgScoreStuIndex].length - 1) {
                    str.append(String.format(format, (double) array[maxAvgScoreStuIndex][index]));
                } else {
                    str.append(array[maxAvgScoreStuIndex][index]);
                }
                str.append(" ");
            }
            System.out.println(str.toString());
        }
    }
    

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(9条)

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料