---
# System prepended metadata

title: 成績統計II

---

# 成績統計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";
}
```