计算GPA
GPA 是 Grade Point Average 的简写,是高校采用的一种评估学生成绩的制度。接下来,再计算这些分数的平均数,四舍五入保留两位小数即可获得 GPA。一个字符序列:表示小爱各门课程的等第,一门课程的等第只可能是。给定一个字符序列表示小爱每门课程的等第,请计算她的GPA。记 $n$ 表示输入字符序列的长度,有 1≤n≤1000。一个两位小数:表示输入等第对应的 GPA。号只会出现在字
·
题目描述
GPA 是 Grade Point Average 的简写,是高校采用的一种评估学生成绩的制度。
要计算一个学生的 GPA,先将每门学科的等第换算成为一个绩点,规则为:
- 等第
A为4分; - 等第
B为3分; - 等第
C为2分; - 等第
D为1分; - 如果有
+号后缀,则加0.3分。例如B+为3.3分; - 如果有 - 号后缀,则减
0.3分。例如C-为1.7分。
接下来,再计算这些分数的平均数,四舍五入保留两位小数即可获得 GPA。
给定一个字符序列表示小爱每门课程的等第,请计算她的GPA。
输入描述
一个字符序列:表示小爱各门课程的等第,一门课程的等第只可能是A、B、C、D中的一个,保证+号或-号只会出现在字母的后面。
数据范围
记 $n$ 表示输入字符序列的长度,有 1≤n≤1000。
输出描述
一个两位小数:表示输入等第对应的 GPA。
输入样例
ABAB
输出样例
3.50
#include<iostream>
#include<string>
using namespace std;
int main() {
string gpa;
float count = 0 , len[2] = {0, 0};
cin >> gpa;
len[0] = gpa.size() + 1;
for (int i = 0; i < len[0]; ++i)
if (gpa[i] == 'A' || gpa[i] == 'B' || gpa[i] == 'C' || gpa[i] == 'D')
len[1]++;
for (int i = 0; i < len[0]; ++i) {
if (gpa[i] == 'A')
count = count + 4;
else if (gpa[i] == 'B')
count = count + 3;
else if (gpa[i] == 'C')
count = count + 2;
else if (gpa[i] == 'D')
count = count + 1;
else if (gpa[i] == '+')
count = count + 0.3;
else if (gpa[i] == '-')
count = count - 0.3;
}
float score = count / len[1];
printf("%.2f", score);
return 0;
}
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)