HDU2023題解分析

2021-06-27 14:14:48 字數 1031 閱讀 7126

我想說這道題我還沒弄明白我錯哪了,交了20多遍一直都是runtime error,改了n次還是不對,後來搜了一下,說是陣列開小了,又把陣列開大,還不對,又改發現乙個平均值求錯,再改,還不對,洗洗睡吧。上午用了多個測試樣例,結果第對的,可還是runtime error,於是就搜了乙個跟自己差不多的**,發現方法一樣,輸出有點差別,改完後就ac,難道真是輸出錯了,還是for迴圈多了?等我想明白了再說吧…… 

題意:給出n個同學(n<=50),m(m<=5)門課程的成績,求每個學生的平均成績和每門課的平均成績,以及各科成績都大於平均成績的人數 

輸入:多個測試樣例,第一行:n, m,接著輸入n行,m個 成績 輸出:第一行:n個學生的平均成績,結果保留兩位小數。第二行:m門課的平均成績,結果保留兩位小數。第三行:每門課成績都大於平均成績的人數 

題解:首先考慮到用二維陣列來處理,然後分別求出每一行的平均值(即每個學生的平均成績),每一列的平均值(即每一門課的平均成績),再進行每個學生每一門課的成績與該科平均成績的比較,統計人數。需要注意的是,用二維陣列需要多次雙重迴圈,可能會超時,所以要盡力少使用迴圈,注意輸出的格式控制。 

難點:(1)在計算每門課的平均成績時,要注意迴圈範圍,計算的是每一列的平均值。(2)進行成績與平均成績比較時要注意迴圈控制,是每個學生的每一門成績都大於該課平均成績才能讓標準符號++。(3)在每次計算平津值完後注意將求和變數置為0(無論是列還是行),以便計算下乙個。 

**解釋:剛開始我是用陣列儲存每乙個學生的平均成績和每一門課的平均成績,然後單獨輸出,結果是runtime error,至於到底是輸出錯誤還其他錯誤,容我再想想……

#include 

int main()

if(k==m) //如果該學生的所有課成績都大於平均成績,則標誌count++

count++;

i++; //進行下乙個學生的比較

} printf("%d\n",count);//輸出人數並換行

printf("\n"); //注意題目要求是每乙個例項後跟乙個空行

} return 0;

}

HDU 2023 求平均成績

problem description 假設乙個班有n n 50 個學生,每人考m m 5 門課,求每個學生的平均成績和每門課的平均成績,並輸出各科成績均大於等於平均成績的學生數量。input 輸入資料有多個測試例項,每個測試例項的第一行包括兩個整數n和m,分別表示學生數和課程數。然後是n行資料,每...

HDU 2023 求平均成績

description 假設乙個班有n n 50 個學生,每人考m m 5 門課,求每個學生的平均成績和每門課的平均成績,並輸出各科成績均大於等於平均成績的學生數量。input 輸入資料有多個測試例項,每個測試例項的第一行包括兩個整數n和m,分別表示學生數和課程數。然後是n行資料,每行包括m個整數 ...

HDU 2023 求平均成績

time limit 1000ms memory limit 32768kb 64bit io format i64d i64u submit status practice hdu 2023 description 假設乙個班有n n 50 個學生,每人考m m 5 門課,求每個學生的平均成績和每...