编写程序,用户输入学号、姓名和成绩(用逗号隔开),按照降序输出学号、姓名和平均成绩。 例如: 请输入学号,姓名和成绩(用逗号隔开):1001,张 三,80 请输入学号,姓名和成绩(用逗号隔开):1002,李 四,100 请输入学号,姓名和成绩(用逗号隔开):1001,张 三,70 请输入学号,姓名和成绩(用逗号隔开):1002,李 四,90 请输入学号,姓名和成绩(用逗号隔开): 1002 张三 95.0 1001 李四 75.0
时间: 2024-04-22 17:22:28 浏览: 119
可以使用Python语言编写这个程序,代码如下:
```python
students = {}
while True:
info = input("请输入学号,姓名和成绩(用逗号隔开):")
if not info:
break
stu_id, name, score = info.split(",")
if stu_id not in students:
students[stu_id] = {"name": name, "scores": []}
students[stu_id]["scores"].append(float(score))
results = []
for stu_id, info in students.items():
name = info["name"]
scores = info["scores"]
avg_score = sum(scores) / len(scores)
results.append((stu_id, name, avg_score))
results = sorted(results, key=lambda x: x[2], reverse=True)
for result in results:
print("{} {} {:.1f}".format(result[0], result[1], result[2]))
```
这个程序首先使用一个字典`students`来存储每个学生的信息,其中学生的学号作为键,姓名和成绩列表作为值。程序通过一个循环来不断读入用户输入的信息,将学生信息加入到`students`字典中。
接着,程序遍历`students`字典,计算每个学生的平均成绩,并将学号、姓名和平均成绩构成一个元组加入到`results`列表中。最后,程序对`results`列表进行排序,按照平均成绩的降序排列,并输出每个学生的学号、姓名和平均成绩。
阅读全文