練習 5月31日
題目 某班有20人,期中考考五科, A[20][5]為1~20號五科的成績,五科分別以科目一、科目二、科目三、科目四、科目五代表。 在主程式算出各科平均 以及每人的平均分數。 然後,呼叫兩函數, 在第一函數算出平均最高分的學號、平均分數。 在第二函數輸出平均及格人數。 將兩函數的計算結果傳回主程式, 在主程式輸出: 1. 五個科目各科平均分數 2. 平均最高分的學號、平均分數 3. 平均及格人數。 做法: 1. 分數是 int,平均分數使用double。 2. 呼叫函數時,除陣列外,以參照或位址傳回數值。
計算平均 某班有20人,期中考考五科, A[20][5]為1~20號五科的成績,五科分別以科目一、科目二、科目三、科目四、科目五代表。 科目一的分數為A[0][0], A[1][0],A[2][0], .............A[19][0] 科目二的分數為A[0][1], A[1][1],A[2][1], .............A[19][1] .................. 科目五的分數為A[0][4], A[1][4],A[2][4], .............A[19][4] 1號的分數為A[0][0], A[0][1], ....A[0][4] 2號的分數為A[1][0], A[1][1], ....A[1][4] ................... 20號的分數為A[19][0], A[19][1], ....A[19][4]
計算平均 科目一的分數為 A[0][0], A[1][0],A[2][0], ............., A[19][0] 科目一的平均分數為 (A[0][0]+ A[1][0]+A[2][0]+ .............+A[19][0])/20.0 以迴圈表示: sum=0.0 for (int i = 0; i < 20; i++) sum=sum+A[i][0]; subject=sum/20.0
計算平均 科目一~五平均分數為subject[0] ~subject[4] 以迴圈表示: sum=0.0 for (int i = 0; i < 20; i++) sum=sum+A[i][0]; subject[0]=sum/20.0 sum=sum+A[i][1]; subject[1]=sum/20.0 sum=0.0 for (int i = 0; i < 20; i++) sum=sum+A[i][2]; subject[2]=sum/20.0 sum=sum+A[i][3]; subject[3]=sum/20.0 sum=sum+A[i][4]; subject[4]=sum/20.0
計算平均 以迴圈表示: for (int j=0; j<5; j++) { sum=0.0 for (int i = 0; i < 20; i++) sum=sum+A[i][j]; subject[j]=sum/20.0 }
計算平均 1號分數為 A[0][0], A[0][1],A[0][2], A[0][3], A[0][4] 1號平均分數為 (A[0][0]+ A[0][1]+A[0][2]+A[0][3]+A[0][4] )/5.0 以迴圈表示: sum=0.0 for (int j = 0; j < 5; i++) sum=sum+A[0][j]; avg=sum/5.0
計算平均 1號~20號平均分數為avg[0] ~avg[19] 以迴圈表示: sum=0.0 for (int j = 0; j < 5; j++) sum=sum+A[0][j]; avg[0]=sum/5.0 sum=sum+A[1][j]; avg[1]=sum/5.0 sum=0.0 for (int j = 0; j < 5; j++) sum=sum+A[2][j]; avg[2]=sum/5.0 .................................... ............................ sum=sum+A[19][j]; avg[19]=sum/5.0
計算平均 以迴圈表示: for (int i=0; i<20; i++) { sum=0.0 for (int j = 0; j < 5; i++) sum=sum+A[i][j]; avg[i]=sum/5.0 }