有多组测试用例,输入文件的第一行有一个正整数n(n≤300),表示有n组测试用例。每组测试用例有两行:第一行一个正整数m(3≤m≤10000),表示有m个评分,接下来一行有m个用空格隔开的0-100范
时间: 2023-06-05 08:48:10 浏览: 184
围内的整数,表示每个人的评分。请问如何设计一个程序,能够读取输入文件,并对每组测试用例进行处理,输出每组测试用例的平均分数和最高分数。
可以使用循环结构,先读取输入文件的第一行,获取测试用例的数量n,然后使用for循环读取每组测试用例的数据。在每组测试用例的循环中,先读取评分的数量m,然后使用for循环读取每个人的评分,并累加求和。最后,计算平均分数和最高分数,并输出结果。
具体实现可以参考以下代码:
```python
with open('input.txt', 'r') as f:
n = int(f.readline()) # 读取测试用例数量
for i in range(n):
m = int(f.readline()) # 读取评分数量
scores = list(map(int, f.readline().split())) # 读取每个人的评分
# 计算平均分数和最高分数
avg_score = sum(scores) / m
max_score = max(scores)
# 输出结果
print('Case {}: {:.2f} {}'.format(i+1, avg_score, max_score))
```
其中,`map(int, f.readline().split())` 表示将读取的一行字符串按空格分隔后,转换为整数列表。`sum(scores)` 表示求列表 `scores` 中所有元素的和。`max(scores)` 表示求列表 `scores` 中的最大值。`format()` 函数用于格式化输出结果,其中 `i+1` 表示当前测试用例的编号。
阅读全文