计算绩点 pta 计算绩点

学分绩点计算办法:
1、按成绩折算课程绩点:
90分 - 100分 折合4.0 - 5.0绩点,即90分折合4.0,91分折合4.1,依次类推
80分 - 89分 折合3.0 - 3.9绩点,即80分折合3.0,81分折合3.1,依次类推
70分 - 79分 折合2.0 - 2.9绩点,即70分折合2.0,71分折合2.1,依次类推
60分 - 69分 折合1.0 - 1.9绩点,即60分折合1.0,61分折合1.1,依次类推
不足60分的绩点为0

2、计算公式:
课程学分绩点 = 课程绩点 × 课程学分
平均学分绩点 = 课程学分绩点总和 ÷ 课程学分总和

输入学生各门课程的成绩和学分,编程实现学分绩点计算,输出每门课程的绩点,学分和课程学分绩点,并输出平均学分绩点

输入格式:
每一行输入课程的成绩和学分,以#结束

输出格式:
每一行输出课程绩点,学分,课程学分绩点(保留两位小数),每一项占8个字符的宽度
最后一行输出平均学分绩点(保留两位小数)

输入样例:
在这里给出一组输入。例如:

95 2
87 3
83 2
78 3
66 4
56 2
93 1
#
输出样例:
在这里给出相应的输出。例如:

课程绩点 学分 课程学分绩点
4.5 2 9.00
3.7 3 11.10
3.3 2 6.60
2.8 3 8.40
1.6 4 6.40
0 2 0.00
4.3 1 4.30
平均学分绩点 = 2.69

是需要代码吗,我写了一份,希望题主采纳:

import math

def get_GPA(score):
    if score >= 90:
        return 4.0
    elif score >= 80:
        return 3.0 + (score - 80) / 10.0
    elif score >= 70:
        return 2.0 + (score - 70) / 10.0
    elif score >= 60:
        return 1.0 + (score - 60) / 10.0
    else:
        return 0.0

courses = []
credit_total = 0.0
credit_GPA_total = 0.0

while True:
    try:
        line = input().strip()
        if line == '#':
            break
        score, credit = map(int, line.split())
        GPA = get_GPA(score)
        credit_GPA = GPA * credit
        courses.append((GPA, credit, credit_GPA))
        credit_total += credit
        credit_GPA_total += credit_GPA
    except EOFError:
        break

for c in courses:
    print("{:8.1f} {:<8d} {:8.2f}".format(c[0], c[1], c[2]))

average_GPA = credit_GPA_total / credit_total
print("平均学分绩点 = {:.2f}".format(average_GPA))

基于new Bing 的回答:

grades = []
credits = []
while True:
    s = input().strip()
    if s == '#':
        break
    grade, credit = map(int, s.split())
    grades.append(grade)
    credits.append(credit)

n = len(grades)
credit_points = []
total_credits = 0
for i in range(n):
    if grades[i] >= 90:
        point = 4.0
    elif grades[i] >= 80:
        point = 3.0 + (grades[i] - 80) / 10
    elif grades[i] >= 70:
        point = 2.0 + (grades[i] - 70) / 10
    elif grades[i] >= 60:
        point = 1.0 + (grades[i] - 60) / 10
    else:
        point = 0
    credit_points.append(point * credits[i])
    total_credits += credits[i]
    print(f'{point:>8.1f} {credits[i]:>8d} {point*credits[i]:>8.2f}')

gpa = sum(credit_points) / total_credits
print(f'平均学分绩点 = {gpa:.2f}')


有帮助望采纳

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^