GPA 计算
时间限制:1000ms 内存限制:65535KB
题目描述
GPA,或称平均学分绩点,是用来衡量学生学习成果的重要指标。 我们这里的 GPA 采用 4 分制(即满分为 4 分),算法如下: 设某门课程的百分制成绩为x,则相应的GPA=4-3×((100-x)²)/1600 (60≤x≤100),当分数为 60 分时 GPA 为 1,60 分以下GPA为 0。 现输入N (1≤N≤100) 门课的百分制成绩x_1,x_2,……,x_N和每门课对应的学分h_1,h_2,……,h_N。 通过各门课 GPA 计算总 GPA 的公式为:总 GPA=(GPA_1×h_1+GPA_2×h_2+⋯+GPA_N×h_N)/(h_1+h_2+⋯+h_N)。 请编写程序计算总 GPA,将结果保留到小数点后 2 位。
输入
输入数据为N+1行。 第 1 行为一个正整数N,表示获得百分制成绩的课程门数; 第 2 行至N+1行为N门课程的百分制成绩和其对应的学分,第i行为第i门科目对应的百分制成绩和学分x_i,h_i,成绩与学分之间用一个空格隔开。
输出
输出数据包含一行,为计算出的总 GPA(保留到小数点后 2 位)。
输入样例1
2
85 3
60 2
输出样例1
2.55
样例解释
对于所有数据:0≤x_i≤100,x_i∈Z;0.5≤h_i≤6,h_i=0.5k (k∈Z)
实验指导:
1. 注意计算单科 GPA 时,如果成绩低于 60 分 则GPA 为 0;
2. 使用 a, b = map(float,input().split()) 将输入转为浮点数;
3. 对于多组数据可以使用for循环来控制读取数据的次数以及对数据处理的次数。
解答:这是一道很简答的题目
注意利用一个循环不断累加,注意使用一个记录次数的变量
代码如下
N=int(input())
GPA=0;GROCE=0
for i in range(N):
x,b=map(float,input().split())
GROCE=GROCE+b
if x>=60:
GPA=GPA+(4-3*((100-x)*(100-x))/1600)*b
else:
GPA=GPA
print("%.2f"%(GPA/GROCE))