欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

HDU - 4802 - GPA (水题)

程序员文章站 2022-07-02 15:14:37
题意: 计算GPA,输入一个数字和一个字符串,用 思路: 用map对应数值,要注意的是字符串为P或者N的时候,不计入结果 代码: ......

题意:

计算gpa,输入一个数字和一个字符串,用 数字×字符串对应的数值

思路:

用map对应数值,要注意的是字符串为p或者n的时候,不计入结果

代码:

#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
#include<map>

using namespace std;

map<string, double> mp;

int main() {
    mp["a"] = 4.0;
    mp["a-"] = 3.7;
    mp["b+"] = 3.3;
    mp["b"] = 3.0;
    mp["b-"] = 2.7;
    mp["c+"] = 2.3;
    mp["c"] = 2.0;
    mp["c-"] = 1.7;
    mp["d"] = 1.3;
    mp["d-"] = 1.0;
    mp["f"] = 0.0;
    int t;
    while (~scanf("%d", &t)) {
        double x, ans = 0.0, index = 0.0;
        string str;
        for (int i = 1; i <= t; i++) {
            cin >> x >> str;
            if (str == "p" || str == "n") continue;
            ans += x * mp[str];
            index += x;
        }
        if (index == 0) printf("0.00\n");
        else printf("%.2lf\n", ans / index);
    }

    return 0;
}