计算GPA

题目描述

GPA 是 Grade Point Average 的简写,是高校采用的一种评估学生成绩的制度。

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

  • 等第A4分;
  • 等第B3分;
  • 等第C2分;
  • 等第D1分;
  • 如果有+号后缀,则加0.3分。例如B+3.3分;
  • 如果有 - 号后缀,则减0.3分。例如C-1.7分。

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

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

输入描述

一个字符序列:表示小爱各门课程的等第,一门课程的等第只可能是ABCD中的一个,保证+号或-号只会出现在字母的后面。

数据范围

记 $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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值