百布 2022-03-20 13:58 采纳率: 95.8%
浏览 22
已结题

Java 有关类的问题

问题遇到的现象和发生背景

img

问题相关代码,请勿粘贴截图
import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int sum = 0;
        Cla cc = new Cla();
        cc.num = 0;
        while(sc.hasNext()){
            Student s = new Student();
            s.name = sc.next();
            s.id = sc.next();
            s.sex = sc.next();
            s.age = sc.nextInt();
            cc.stu[cc.num] = s;
            sum +=cc.stu[cc.num].age;
            cc.num ++;
        }
        double avg = (double)sum/ (double)cc.num;

        System.out.println("班级学生"+cc.num+"人,平均年龄"+ String.format("%.1f",avg) +".");
    }
}

class Student{
    String name;
    String id;
    int age;
    String sex;
}

class Cla{
    Student[] stu = new Student[100];
    int num;
}

才学Java几天,不知道怎么做了

  • 写回答

1条回答 默认 最新

  • 社畜阿藏405 Java领域新星创作者 2022-03-20 15:14
    关注
    
    package com.azang.java;
    
    import java.math.BigDecimal;
    import java.util.ArrayList;
    import java.util .List;
    import java.util.Scanner;
    
    public class ByteCodeInterview {
        public static void main(String[] args) {
            List<Student> studentList = new ArrayList<>();
            Scanner sc = new Scanner(System.in);
            while (sc.hasNextLine()) {
                String str = sc.nextLine();
                if (str.isEmpty()) {
                    break;
                } else {
                    String[] split = str.split(" ");
                    Student student = new Student(split[0], split[1], Integer.parseInt(split[2]), split[3]);
                    studentList.add(student);
                }
            }
            sc.close();
            BigDecimal avg = BigDecimal.ZERO;
            for (Student student : studentList) {
                // 四舍五入除法保留两位小数
                BigDecimal divide = BigDecimal.valueOf(student.age).divide(BigDecimal.valueOf(studentList.size()), 2, BigDecimal.ROUND_HALF_UP);
                avg = avg.add(divide);
            }
            System.out.println("班级学生" + studentList.size() + "人,平均年龄" + String.format("%.1f", avg) + ".");
        }
    }
    
    class Student {
        String name;
        String id;
        int age;
        String sex;
    
        public Student() {
        }
    
        public Student(String name, String id, int age, String sex) {
            this.name = name;
            this.id = id;
            this.age = age;
            this.sex = sex;
        }
    }
    
    class Cla {
        Student[] stu = new Student[100];
        int num;
    }
    

    拿去生活

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月29日
  • 已采纳回答 3月21日
  • 创建了问题 3月20日

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分