复制
收藏
提问
简洁
计算学生的平均分。输入的第一行表示学生人数n,输入的第2~n+1行表示学生成绩,输出的一行表示平均分(保留2位小数)。若输入的数据不合法(学生人数不是大于0的整数,或学生成绩大于100),则输出illegal input。请完善程序中划线部分的填入,实现其功能。
3月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
要实现计算学生平均分的程序,我们需要遵循以下步骤:
-
输入学生人数:首先,我们需要从用户那里获取学生人数
n
,这个值应该是一个大于0的整数。如果输入不合法,即学生人数不是大于0的整数,我们需要输出"illegal input"。45 -
输入学生成绩:接下来,我们需要输入每个学生的成绩。根据题目要求,输入的第2至n+1行表示学生成绩。这意味着我们需要读取
n
行输入,每行包含一个学生的成绩。45 -
检查成绩合法性:在读取成绩时,我们需要确保每个成绩都是合法的,即成绩应该是一个不大于100的整数。如果遇到不合法的成绩,我们应该输出"illegal input"。4
-
输出平均分:最后,我们需要输出计算得到的平均分,保留两位小数。如果输入数据不合法,我们则输出"illegal input"。4
基于以上步骤,我们可以完善程序中划线部分的代码如下:
# 输入学生人数
n = int(input("请输入学生人数:"))
if n <= 0:
print("illegal input")
else:
total = 0
count = 0
# 输入学生成绩并检查合法性
for i in range(n):
score = int(input(f"请输入第{i+1}个学生的成绩:"))
if score > 100:
print("illegal input")
break
total += score
count += 1
# 计算平均分
if count == n: # 确保所有输入都是合法的
average = total / n
print(f"平均分为:{average:.2f}")
这段代码首先检查学生人数是否合法,然后读取每个学生的成绩并检查其合法性。如果所有输入都是合法的,它将计算平均分并保留两位小数输出。如果输入不合法,它将输出"illegal input"。45
你觉得结果怎么样?