如何编写一个程序,接收班级中学生的C语言成绩(直到用户输入-1表示结束),如果分数超过100则提示重新输入,然后计算并输出该班级的最高分、最低分以及平均分?班级人数是未知的,假设每次只输入一个学生的成绩。
时间: 2024-11-11 17:25:13 浏览: 24
要编写这样的程序,你可以按照以下步骤:
1. 定义变量:
- 初始化两个变量,一个`highest_score`用于存储最高分,初始值设为负无穷大;另一个`lowest_score`用于存储最低分,初始值设为正无穷大。
- 创建一个变量`total_score`,用于累加所有学生的分数,初始值为0。
- 使用一个列表或数组`scores`来保存输入的所有成绩。
2. 循环接收学生分数:
- 提示用户输入一个学生的分数。
- 输入一个整数,检查是否为-1。如果是,则跳出循环。
- 如果输入的是非数字或者超过100,提示用户重新输入。
- 将输入的分数与当前的最高分和最低分比较,并更新这两个值。
- 将分数添加到`total_score`中。
3. 计算平均分:
- 当所有分数都输入完毕后,计算平均分,即`total_score`除以输入的次数(除了-1外的次数)。
4. 输出结果:
- 显示班级的最高分、最低分和平均分。
以下是伪代码形式:
```python
highest_score = float('-inf')
lowest_score = float('inf')
total_score = 0
scores = []
while True:
score = input("请输入学生的C语言成绩(输入-1结束):")
if score == '-1':
break
try:
score = int(score)
if score > 100:
print("分数超过100,请重新输入!")
continue
highest_score = max(highest_score, score)
lowest_score = min(lowest_score, score)
total_score += score
scores.append(score)
except ValueError:
print("无效的输入,请输入整数!")
if not scores:
print("未输入任何成绩,无法计算!")
else:
average_score = total_score / len(scores)
print(f"最高分:{highest_score}")
print(f"最低分:{lowest_score}")
print(f"平均分:{average_score}")
```
阅读全文