# 成績統計II https://neoj.sprout.tw/problem/895/ ### 題目簡介 林老師設計了一個成績統計系統,可以輸入n個同學的成績,並且計算他們的數據, 請幫助林老師完成他的系統。 ### 題目說明 為了方便維護,林老師設計了 Student 的資料型態如下: ```cpp struct Student{ char name[100]; char gender; int score; }; ``` 其中 gender 若為 "F" 為女生,若為 "M" 為男生。 請寫兩個函數 girls_average, boys_average,給定一個 Student 陣列和它的長度, + girls_average 計算這個陣列裡女生分數的平均值,回傳一個double型態的浮點數。 + boys_average 計算這個陣列裡男生分數的平均值,回傳一個double型態的浮點數。 特別地,當該性別的人數為 0,回傳值為 -1。 請寫一個函數 print,給定一個 Student, + print 格式化輸出該 Student 的資料,假設 name = "ABC", gender = "F", score = 100,則輸出 "ABC [F]: 100\n"(不需要引號)。 請實作下列三個函數: 我們已經幫你宣告好了,你只需要實作函數內容就好。 ```cpp double girls_average(Student ss[], int size); double boys_average(Student ss[], int size); void print(Student s); ``` # Code ```cpp #include <iostream> using namespace std; double girls_average(Student ss[], int size){ int girls_num = 0; double girls_sum = 0; for (int i = 0; i < size; i++) { if(ss[i].gender == 'F') { girls_sum += ss[i].score; girls_num++; } } if (girls_num == 0) return -1; else return girls_sum / girls_num; } double boys_average(Student ss[], int size){ int boys_num = 0; double boys_sum = 0; for (int i = 0; i < size; i++) { if(ss[i].gender == 'M') { boys_sum += ss[i].score; boys_num++; } } if (boys_num == 0) return -1; else return boys_sum / boys_num; } void print(Student s){ cout << s.name << " [" << s.gender << "]: " << s.score << "\n"; } ```