请对某次考试的分数,统计各分数段人数,统计原则:分别对10分以下、 10-19分、20-29分、30-39分、40-49分、50-59分、60-69分、70- 79,80-89分,90到99分,100分为一段,共11段。 注意:如果输入分数不在[0,100]之间,不参与统计。 输入格式: 先输入一个整数n,表示将输入n个分数。 再输入n个分数,范围在[0~100]. 每个数用空格间隔。 输出格式: 每一行输出一个分数段的人数统计结果。分数段用0~10表示。
时间: 2023-06-09 15:06:40 浏览: 106
很高兴能与您进行对话!针对您的问题,我可以给出以下代码:
n = int(input())
scores = list(map(int, input().split()))
distribution = [0] * 11
for score in scores:
if score < 0 or score > 100:
continue
index = score // 10
distribution[index] += 1
for i in range(11):
if i == 10:
print("100: {}".format(distribution[i]))
else:
print("{}-{}: {}".format(i * 10, i * 10 + 9, distribution[i]))
其中,列表 distribution 表示各分数段的人数统计结果,将其初始化为 11 个 0。之后,遍历输入的分数列表 scores,对于每个合法的分数,计算其落在哪个分数段,然后将该分数段的计数器加一。最后,按分数段的顺序输出各分数段的人数统计结果即可。
希望能对您有所帮助!
相关问题
7-1 统计分数段人数 分数 10 作者 张庆 单位 集美大学 请对某次考试的分数,统计各分数段人数,统计原则:分别对10分以下、10-19分、20-29分、30-39分、40-49分、50-59分、60-69分、70-79,80-89分,90到99分,100分为一
组进行统计。
解题思路:
1. 定义10个变量,分别表示各个分数段的人数,初始值均为0。
2. 循环输入学生的分数,每输入一个分数就根据其值将相应的变量加1。
3. 循环结束后,输出各个分数段的人数。
参考代码:
```python
# 定义各个分数段的人数变量,初始值均为0
under_10 = 0
between_10_and_19 = 0
between_20_and_29 = 0
between_30_and_39 = 0
between_40_and_49 = 0
between_50_and_59 = 0
between_60_and_69 = 0
between_70_and_79 = 0
between_80_and_89 = 0
between_90_and_99 = 0
full_score = 0
# 循环输入学生的分数
while True:
score = input("请输入学生的分数(输入-1结束):")
if score == "-1":
break
score = int(score)
if score < 0 or score > 100:
print("分数无效,请重新输入!")
continue
if score < 10:
under_10 += 1
elif score < 20:
between_10_and_19 += 1
elif score < 30:
between_20_and_29 += 1
elif score < 40:
between_30_and_39 += 1
elif score < 50:
between_40_and_49 += 1
elif score < 60:
between_50_and_59 += 1
elif score < 70:
between_60_and_69 += 1
elif score < 80:
between_70_and_79 += 1
elif score < 90:
between_80_and_89 += 1
elif score < 100:
between_90_and_99 += 1
else:
full_score += 1
# 输出各个分数段的人数
print("10分以下:", under_10, "人")
print("10-19分:", between_10_and_19, "人")
print("20-29分:", between_20_and_29, "人")
print("30-39分:", between_30_and_39, "人")
print("40-49分:", between_40_and_49, "人")
print("50-59分:", between_50_and_59, "人")
print("60-69分:", between_60_and_69, "人")
print("70-79分:", between_70_and_79, "人")
print("80-89分:", between_80_and_89, "人")
print("90-99分:", between_90_and_99, "人")
print("满分:", full_score, "人")
```
请对某次考试的分数,统计各分数段人数,统计原则:分别对10分以下、10-19分、20-29分、30-39分、40-49分、50-59分、60-69分、70-79,80-89分,90到99分,100分为一段,共11段 。 注意:如果输入分数不在[0,100]之间,不参与统计。
输入:一个包含多个整数的列表,表示每个人的分数。
输出:一个包含11个整数的列表,表示各分数段的人数,按分数段从小到大排列。
例如,输入[23, 88, 61, 45, 77, 91, 85, 72, 99, 100],输出[0, 0, 0, 1, 1, 1, 2, 2, 1, 1, 1]。
解释:在10-19分之间没有人,20-29分之间没有人,30-39分之间没有人,40-49分之间有1个人,50-59分之间有1个人,60-69分之间有2个人,70-79分之间有2个人,80-89分之间有1个人,90-99分之间有1个人,100分有1个人。
阅读全文