假设给定年龄是一个数组,应该如何操作?

来源:3-2 Java中的算术运算符

不是咸鱼

2016-10-09 16:27

自己写了以下代码,能成功运行,想问问有什么瑕疵或可以再优化改进的嘛?

package com.demo;
public class HelloWorld {
public static void main(String[] args) {
int[] age={24, 18, 36, 27};
int max=age[0];
int min=age[0];
int minus=0;
int sum=0;
int avg=0;
for(int i=0;i<age.length;i++){
 if(age[i]>max){
  max=age[i];
 }
 if(age[i]<min){
  min=age[i];
 }
sum=sum+age[i];
avg=sum/age.length;
minus=max-min;
}
System.out.println("最大年龄:"+max);
System.out.println("最小年龄:"+min);
System.out.println("年龄总和:"+sum);
System.out.println("平均年龄:"+avg);
System.out.println("年龄差值:"+minus);
}
}

写回答 关注

4回答

  • 似梦儿戏4091629
    2016-10-09 17:04:13
    已采纳

    1.平均数avg不一定为整数,用float或者double定义,或者你后面运算四舍五入如:avg=(int)(sum/age.length+0.5);

    2.avg=sum/age.length;
    minus=max-min;

    上面这两行放在for循环外,不要每次都进行赋值,占用空间复杂度。

    3.其他都挺好的,看的很清楚,如果要节省代码长度可以试试这样写

    int min,max,minus,avg,sum;

    min=max=age[0];

    minus=avg=sum=0;

    System.out.println("最大年龄:"+max+'\r'+"最小年龄:"+min+'\r'+"年龄总和:"+sum+'\r'+"平均年龄:"+avg+'\r'+"年龄差值:"+minus);

    不是咸鱼

    感谢回答

    2016-10-12 14:58:20

    共 1 条回复 >

  • 褒姒4096793
    2016-10-09 17:17:52

    给数组进行排序。

  • 不是不爱睡觉
    2016-10-09 17:08:50

    平均数不一定是整的  用double

    不是咸鱼

    谢谢回答

    2016-10-12 14:59:20

    共 1 条回复 >

  • 小红帽12345
    2016-10-09 16:57:05

    个人感觉这个没啥可优化,反正不管如何都得遍历数组求得总和

    不是咸鱼

    谢谢回答

    2016-10-12 14:58:58

    共 1 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165558 学习 · 17587 问题

查看课程

相似问题