1.
(30%)請建立一個二維陣列(陣列之資料型別請使用double),儲存下列三個學生五次小考的成績,並印出三人成績單。
※若是沒有使用陣列而直接印出結果者零分計算
※請使用格式化輸出,小數點取至第二位,將結果列印成對齊的格式
輸出範例:
12345
190.0075.0055.0080.0076.00
280.0060.0080.0078.0090.00
360.0040.0070.0086.0058.00
2.
(40%)依照第一題的三人成績,回答下面問題(輸出結果一律取至小數點第二位)
利用第一題創建之二維陣列中儲存之內容,計算三人的平均小考成績,之後將平均成績依序存入average[]後並印出(陣列之資料型別請使用double) (15%)
將average[]進行遞增排序後印出(由低至高)(10%)
※import java.util.Arrays; 利用Arrays.sort()來排序
※未使用方法而直接印出排序結果者不予計分
將average[]進行遞減排序後印出(由高至低)(15%)
/* 學生分數(三個學生五個分數) */
double a[][] = {
{1 ,1 ,1 ,1 ,1},
{28 ,60 ,80 ,78 ,90},
{36 ,40 ,70 ,86 ,58}
};
/* 學生分數平均 */
Double average[] = new Double[a.length] ;
/* 取到小數第二位 */
DecimalFormat df=new DecimalFormat("#.##");
for(int i = 0 ; a.length > i ; i++){
for(int j = 0 ; a[i].length > j ;j++ ){
log("第"+(i+1)+"個學生第"+(j+1)+"次成績:"+df.format(a[i][j]));
Double objDouble = new Double(a[i][j]);
if(average[i]==null)
average[i] = new Double(0);
average[i] += objDouble;
if(j == a[i].length-1){
average[i] = average[i] / a[i].length;
}
}
System.out.println("第"+(i+1)+"個學生平均分數為:"+average[i]);
System.out.println();
}
/* 分數排序 */
Comparator<Double> best = new Comparator<Double>(){
@Override
public int compare(Double o1, Double o2) {
//return (int)((o2 - o1)*100); //由小到小大排序
//return (int)((o2 - o1)*100); //由大到小排序
}
};
Arrays.sort(average,best);
for(int i = 0 ; average.length > i ; i++){
System.out.println("由低至高的分數為:"+average[i]);
}
如果此篇對您有幫助,您可以點選廣告給予最大的動力,感謝您的收看。
沒有留言:
張貼留言