计算机小菜鸟 ~ 2022-04-04 15:33 采纳率: 58.8%
浏览 36
已结题

java通过出生年月获得年龄

java怎么通过出生年月获得五个学生的年龄并计算他们的平均年龄?

  • 写回答

1条回答 默认 最新

  • 离陌lm 2022-04-04 16:31
    关注

    public class LX_1 {
    static Scanner input = new Scanner(System.in);
    public static void main(String[] args) {
    double average,sum=0;
    int x,y,z,a,b,c;
    double[] ages = new double[5];
    for(int i=0;i<5;i++) {
    System.out.print("依次输入第"+(i+1)+"个同学的出生年月日:");
    x=input.nextInt();
    y=input.nextInt();
    z=input.nextInt();

            System.out.print("依次输入第"+(i+1)+"个同学现在的年月日:");
            a=input.nextInt();
            b=input.nextInt();
            c=input.nextInt();
            
            ages[i] = age(x,y,z,a,b,c);
        }
        for(int i=0;i<5;i++) {
            System.out.println("第"+i+"位同学的年龄为:"+ages[i]);
            sum += ages[i];
        }
        System.out.println("这五位同学的平均年龄为:" + (sum/5.0));
        
        
    }
    
    public static double age(int x,int y,int z,int a,int b,int c) {
        int year=0,month=0,day = 0;
        double age;
        
        if(a>=x){
            if(b>=y){
                if(c>=z){
                    year=a-x;month=b-y;day=c-z;
                }
                else{
                    year=a-x;month=b-y-1;
                    if(b==4 || b==6 || b==9 || b==10){
                        day=30-z+c;
                    }
                    else if(b==2){
                        day=28-z+c;
                    }
                    else
                        day=31-z+c;
                }
            }
            else{
                if(c>=z){
                    year=a-x;month=12-y+b;day=c-z;
                }
                else{
                    year=a-x;month=12-y+b-1;
                    if(b==4 || b==6 || b==9 || b==10){
                        day=30-z+c;
                    }
                    else if(b==2){
                        day=28-z+c;
                    }
                    else
                        day=31-z+c;
                }
            }        
        }
        
        age = year + month/12.0 + day/30.0;
        
        return age;
    }
    

    }

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

报告相同问题?

问题事件

  • 系统已结题 4月12日
  • 已采纳回答 4月4日
  • 创建了问题 4月4日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵