`
阿尔萨斯
  • 浏览: 4172492 次
社区版块
存档分类
最新评论

hdu 4802 GPA(水题)

 
阅读更多

题目链接:hdu 4802 GPA

题目大意:有11个等级,每个等级都有对应的分数,现在给出n组信息,每组信息有两个值,一个是人数,一个是等级,登出除了有对应分值的11个外还有P表示pass和N表示not pass,这两个情况将忽略。然后计算每个人的平均分。

解题思路:水题。

#include <cstdio>
#include <cstring>

double cal (char ch) {
    switch (ch) {
        case 'A':
            return 4;
        case 'B':
            return 3;
        case 'C':
            return 2;
        case 'D':
            return 1.3;
        case 'F':
            return 0;
    }
    return 0;
}

int main () {
    int n;
    while (scanf("%d", &n) == 1) {
        int cnt = 0;
        double sum = 0;

        int a;
        char str[10];
        for (int i = 0; i < n; i++) {
            scanf("%d%s", &a, str);
            if (str[0] == 'P' || str[0] == 'N')
                continue;

            cnt += a;
            double tmp = cal(str[0]);

            if (str[1] == '+')
                tmp += 0.3;
            else if (str[1] == '-')
                tmp -= 0.3;
            sum += tmp * a;
        }

        if (cnt)
            sum /= cnt;
        printf("%.2lf\n", sum);
    }
    return 0;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics