编写一个程序,要求用户输入不超过3名学生的成绩(范围从 0 到 100),直到用户输入成绩为 -1 为止。程序统计并输出有效成绩的数量、总和、平均值以及最高和最低成绩。不用循环
时间: 2024-10-06 11:05:16 浏览: 30
首先,我们需要创建一个函数,该函数接收用户的输入,并处理成绩数据。当用户输入 -1 时,我们停止收集数据。下面是一个 Python 的解决方案,使用递归实现了这个需求:
```python
def process_scores(scores, total=0, count=0, highest=None, lowest=None):
# 用户输入的成绩
score = int(input("请输入学生成绩(输入 -1 结束):"))
if score == -1:
# 当用户输入 -1 时,结束数据收集
return total, count, highest or 0, lowest or 0
else:
# 更新总和、计数、最高分和最低分
total += score
count += 1
if highest is None or score > highest:
highest = score
if lowest is None or score < lowest:
lowest = score
# 再次调用自身处理下一个成绩
return process_scores(scores, total, count, highest, lowest)
# 调用函数开始收集数据
total_score, num_students, max_score, min_score = process_scores([])
print(f"有效成绩数量:{num_students}")
print(f"总分:{total_score}")
print(f"平均分:{total_score / num_students:.2f}")
print(f"最高分:{max_score}")
print(f"最低分:{min_score}")
```
在这个程序中,`process_scores` 函数会一直询问用户输入成绩,直到用户输入 -1。然后它返回累计的分数、学生数量、最高分和最低分。最后,我们打印出计算结果。
阅读全文