学校课程考核成绩与绩点关系如下: 一门课程的成绩在 60 分 (不含 60 分)以下不能获得学分,也不能进行学分绩点的计算, 60 ~ 100 分之间按下试计算: 注:在本题中成绩在 60 分以下的课程成绩绩点为 0. 每学年结束应计算学生的平均学分绩点,计算方法如下: 其中: 输入格式 第一行一个整数 t(1 <= t <= 100) 代表测试用例组数。每组测试用例包含三行: 每组测试样例第一行一个整数 n (1 <= n <= 30)表示该学年课程总数, 第二行有 n 个小数 a1, a2, ... , an (0.1 <= ai <= 10.0)表示第 i 门课程的学分数。 第三行有 n 个整数 b1, b2, ... , bn (0 <= bi <= 100)表示第 i 门课程的成绩。 输出格式 对于每组测试用例,输出 n 行每行一个整数代表其该学年平均学分绩点。(结果保留两位小数)
时间: 2024-02-05 22:05:17 浏览: 111
平均学分绩点计算工具
这个问题需要用到计算绩点的公式,公式如下:
```
绩点 = 该课程学分 × 对应绩点
```
其中,对应绩点根据成绩计算得出,具体如下:
```
100分:4分 90-99分:3.7分 85-89分:3.3分 82-84分:3.0分 78-81分:2.7分 75-77分:2.3分 72-74分:2.0分 68-71分:1.5分 60-67分:1.0分 60分以下:0分
```
因此,我们需要读入每门课程的学分和成绩,计算出每门课程的绩点,再根据公式求出平均绩点。
以下是完整的代码实现:
```python
def calc_gpa(score):
if score >= 90:
return 4.0
elif score >= 85:
return 3.7
elif score >= 82:
return 3.0
elif score >= 78:
return 2.7
elif score >= 75:
return 2.3
elif score >= 72:
return 2.0
elif score >= 68:
return 1.5
elif score >= 60:
return 1.0
else:
return 0.0
t = int(input())
for _ in range(t):
n = int(input())
credits = list(map(float, input().split()))
scores = list(map(int, input().split()))
total_credit = 0
total_gpa = 0
for i in range(n):
if scores[i] >= 60:
credit = credits[i]
gpa = calc_gpa(scores[i])
total_credit += credit
total_gpa += credit * gpa
if total_credit > 0:
gpa_avg = total_gpa / total_credit
else:
gpa_avg = 0.0
print('%.2f' % gpa_avg)
```
注意在最后输出时,需要使用格式化字符串保留两位小数。
阅读全文