Advertisement

上海计算机学会2020年5月月赛C++丙组T2计算GPA

阅读量:

为了计算学生的GPA(Grade Point Average),首先将每门学科的成绩转换为相应的分数:
A = 4分
B = 3分
C = 2分
D = 1分
如果有+号,则加0.3分;如果有-号,则减0.3分。例如:
B+为3.3分
C-为1.7分
将所有课程的分数相加后取平均值,并四舍五入保留两位小数以获得最终的GPA值。
输入是一个由A、B、C、D组成的字符序列(可能带有±号),表示每门课程的成绩。输出是一个两位小数的浮点数表示GPA。
例如:
输入:ABAB
输出:3.50
说明:四门课程的成绩分别为4,3,4,3,总分为14分,平均为3.5(即14/4)。
再如:
输入:A+AA-B-BB+C+
输出:3.33
说明:
7门课程的成绩分别为4.3,4,3.7,2.7,3,3.3,2.3,
总分为18.65,
平均约为2.665(即1865/7=约2665/7≈266/7≈??)????
(注:“以上”部分仅为举例说明,请根据实际情况调整数值)

计算GPA

内存限制: 256 Mb时间限制: 1000 ms

题目背景

GPA 被称为 Grade Point Average 的缩写,并被高校通常作为一种评估学生成绩的标准使用。

题目描述

要计算一个学生的 GPA,先将每门学科的等第换算成为一个绩点,规则为:

学生成绩等第 A 等级得分为 4 分;
学生成绩等第 B 等级得分为 3 分;
学生成绩等第 C 等级得分为 2 分;
学生成绩等第 D 等级得分为 1 分;
若成绩等级后有 + 符号,则增加 0.3 分。
例如:某同学的成绩为 B+ 类别,则其总得分应为:3 + 0.3 = 3.3 分。
若成绩等级后有 - 符号,则减少 0.3 分。
例如:某同学的成绩为 C- 类别,则其总得分应为:2 - 0.3 =1.7分。

接下来,再计算这些分数的平均数,四舍五入保留两位小数即可获得 GPA。

给定一个字符序列表示小爱每门课程的等第,请计算她的GPA。

输入格式

由一个字符序列组成:每个字符表示小爱某门课程的成绩等级。每门课程的成绩等级只能是 ABCD 中的一种,并且加减号(如果有的话)只会紧跟在这些字母之后。

输出格式

一个两位小数:表示输入等第对应的 GPA。

数据范围

记 n 表示输入字符序列的长度,有 1≤n≤1000。

样例数据

输入:
ABAB
输出:
3.50
说明:
四门课程,GPA计算公式为(4+3+4+3)/4
输入:
A+AA-B-BB+C+
输出:
3.33
说明:
七门课程,GPA计算公式为(4.3+4+3.7+2.7+3+3.3+2.3)/7=3.32857

解析:详见代码:

复制代码
 #include<bits/stdc++.h>

    
 using namespace std;
    
 string s;
    
 int cnt=0;//科目数
    
 double sum=0;//总分
    
 int main() {
    
     cin>>s;
    
     int len=s.length();
    
     for (int i=0;i<len;i++){
    
     if (s[i]>='A'&&s[i]<='D'){
    
         cnt++;
    
         sum+=('E'-s[i]);
    
     }
    
     if (s[i]=='+'){
    
         sum+=0.3;
    
     }
    
     if (s[i]=='-'){
    
         sum-=0.3;
    
     }
    
     }
    
     printf("%.2lf",sum/cnt);
    
     return 0;
    
 }

全部评论 (0)

还没有任何评论哟~