假設給定年齡是一個數組,應該如何操作?
自己寫了以下代碼,能成功運行,想問問有什么瑕疵或可以再優化改進的嘛?
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.平均數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-09
給數組進行排序。
2016-10-09
平均數不一定是整的? 用double
2016-10-09
個人感覺這個沒啥可優化,反正不管如何都得遍歷數組求得總和