某位老师需要分别统计若干个班某项考试的平均分,但每个班的人数都不相同(人数由键盘输入),请写个程序辅助他尽快完成任务。如果输入的成绩不在[0,100]范围内,则重新输入。结果保留2位小数。
时间: 2024-12-12 21:24:12 浏览: 4
C语言程序设计-统计出若干个学生的平均成绩,最高分以及得最高分的人数;
5星 · 资源好评率100%
为了帮助这位老师快速统计各个班级的平均成绩,你可以编写一个简单的控制台应用。下面是一个用Python编写的示例程序:
```python
def get_input(class_name):
while True:
try:
num_students = int(input(f"请输入{class_name}班的学生人数: "))
scores = [float(score) for _ in range(num_students)]
if all(0 <= score <= 100 for score in scores):
break
else:
print("所有分数应在0到100之间,请重新输入.")
except ValueError:
print("请输入整数学生人数.")
return scores
def calculate_average(scores):
return round(sum(scores) / len(scores), 2)
def main():
class_list = []
while True:
class_name = input("请输入班级名称(输入'quit'结束统计): ")
if class_name.lower() == 'quit':
break
class_list.append((class_name, get_input(class_name)))
total_average = sum(calculate_average(scores) for _, scores in class_list)
print(f"所有班级的平均成绩为: {total_average}")
if __name__ == "__main__":
main()
```
在这个程序中,我们首先定义了一个函数`get_input`用于获取班级的学生成绩,直到输入满足条件为止。然后,`calculate_average`函数计算平均值并四舍五入到两位小数。主函数`main`则会持续收集班级信息,直至用户输入'quit'。
当你运行这个程序,它会让老师依次输入每个班级的名称、人数以及每个学生的分数,最后显示所有班级的平均成绩。
阅读全文