假設(shè)給定年齡是一個(gè)數(shù)組,應(yīng)該如何操作?
自己寫了以下代碼,能成功運(yùn)行,想問問有什么瑕疵或可以再優(yōu)化改進(jìn)的嘛?
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);
}
}
2016-10-09
1.平均數(shù)avg不一定為整數(shù),用float或者double定義,或者你后面運(yùn)算四舍五入如:avg=(int)(sum/age.length+0.5);
2.avg=sum/age.length;
minus=max-min;
上面這兩行放在for循環(huán)外,不要每次都進(jìn)行賦值,占用空間復(fù)雜度。
3.其他都挺好的,看的很清楚,如果要節(jié)省代碼長度可以試試這樣寫
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-09
給數(shù)組進(jìn)行排序。
2016-10-09
平均數(shù)不一定是整的? 用double
2016-10-09
個(gè)人感覺這個(gè)沒啥可優(yōu)化,反正不管如何都得遍歷數(shù)組求得總和