TopCoder

User's AC Ratio

100.0% (3/3)

Submission's AC Ratio

55.6% (5/9)

Tags

Description

林老師設計了一個成績統計系統,可以輸入 $n$ 個同學的成績,並且計算他們的數據, 請幫助林老師完成他的系統。

為了方便維護,林老師設計了 Student 的資料型態如下:

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"(不需要引號)。

總共是要實作下列三個函數: 我們已經幫你宣告好了,你只需要實作函數內容就好。

double girls_average(Student ss[],int size);
double boys_average(Student ss[],int size);
void print(Student s);

以下是測試用的程式碼

#include <iostream>
#include "lib0566.h"

int main() {

    Student ss[1000];
    int n;

    std::cin >> n;
    for(int i = 0; i < n; ++i) {
        std::cin >> ss[i].name;
        std::cin >> ss[i].gender;
        std::cin >> ss[i].score;
    }

    for (int i = 0; i < n; ++i)
        print(ss[i]);
    std::cout << "-----------------------------------------------\n";
    std::cout << "Girl's average = " << girls_average(ss, n) << "\n";
    std::cout << "Boy's average = " << boys_average(ss, n) << "\n";

    return 0;
}

lib0566.h 的內容如下

struct Student {
  char name[100];
  char gender;
  int score;
};

double girls_average(Student ss[],int size);
double boys_average(Student ss[],int size);
void print(Student s);

在你上傳的 code 一開始請加上 #include "lib0566.h"
以下是一份你要上傳的內容的範例程式(要撰寫的部分就是函式的內容)

#include <iostream>
#include "lib0566.h"
using namespace std;

double girls_average(Student ss[], int size){
    double ans = 0;
    return ans;
}
double boys_average(Student ss[], int size){
    double ans = 0;
    return ans;
}
void print(Student s){
    return;
}

Input Format

(你要撰寫的 girls_averageboys_averageprint 三個函式皆不需要處理輸入)

第一行會有一個正整數 $n$,代表學生總人數。
接下來的 $n$ 行每行會有一個學生的姓名、性別(以 F 及 M 表示)、成績,以空白分隔。

Output Format

girls_averageboys_average 兩個函式不需要輸出,只需要回傳一個 double 型態的浮點數。

print 函數要格式化輸出該 Student 的資料,假設 name = "ABC", gender = "F", score = 100,則輸出 "ABC [F]: 100\n"(不需要引號)。

Sample Input 1

5
A F 100
B F 100
C F 100
D F 100
E F 100

Sample Output 1

A [F]: 100
B [F]: 100
C [F]: 100
D [F]: 100
E [F]: 100
-----------------------------------------------
Girl's average = 100
Boy's average = -1

Hints

Problem Source

NEOJ Problem 895

Subtasks

No. Testdata Range Constraints Score
1 0~9 100

Testdata and Limits

No. Time Limit (ms) Memory Limit (VSS, KiB) Output Limit (KiB) Subtasks
0 1000 65536 65536 1
1 1000 65536 65536 1
2 1000 65536 65536 1
3 1000 65536 65536 1
4 1000 65536 65536 1
5 1000 65536 65536 1
6 1000 65536 65536 1
7 1000 65536 65536 1
8 1000 65536 65536 1
9 1000 65536 65536 1