第一行中有个正整数n(1≤n≤100),表示班级中参加考试的学生人数。第二行中包含n个成绩,取值范围[0,1000],成绩之间用空格隔开。成绩以学生学号从小到大的顺序输入,并且规定学生学号都是从第1号开始,然后是2号、3号、4号,......,依次顺序编号到n。第一行输出最高分。第2行请输出取得最高分的学生学号,如果有多名同学取得最高分按学号升序输出,学号之间用空格分隔。的Python函数
时间: 2024-03-09 17:50:34 浏览: 56
2010年的国二C语言的上机考试答案
4星 · 用户满意度95%
以下是一个用于实现上述功能的 Python 函数:
```python
def find_highest_score(n, scores):
max_score = max(scores)
print(max_score)
max_indices = [i+1 for i, x in enumerate(scores) if x == max_score]
print(" ".join(map(str, max_indices)))
```
函数接受两个参数,分别是参加考试的学生人数 `n` 和一个包含 `n` 个成绩的列表 `scores`。函数首先使用 `max()` 函数查找列表中的最高分,并输出该分数。然后使用列表解析式查找取得最高分的学生学号,并使用 `join()` 函数将学号列表转换为字符串输出。注意,在列表解析式中使用 `enumerate()` 函数获取每个成绩所在列表中的位置,并在学号上加上 1,以便从 1 号开始编号。
使用示例:
```python
scores = [85, 98, 100, 92, 100, 77, 100, 85]
find_highest_score(len(scores), scores) # 输出: 100 3 5 7
```
输出结果为:
```
100
3 5 7
```
阅读全文