学校要求开学时统计各班同学们的健康状况。请编写程序,根据输入的学生健康状态清单,统计各种状态的人数。其中学号用六位整数表示,如220102,数字0代表“未感染”,数字1代表“阳过”,数字2代表“阳康”。
时间: 2023-05-28 10:03:14 浏览: 211
假设输入的健康状态清单已经按照学号顺序排好,每行格式为“学号 健康状态”,例如:
220101 0
220102 1
220103 2
220104 0
220105 0
220106 1
220107 0
220108 1
220109 1
220110 0
则可以使用字典来存储各种状态的人数,统计时遍历输入数据,将每个学生的状态加入对应的计数器即可。
代码如下:
health_dict = {'未感染': 0, '阳过': 0, '阳康': 0}
while True:
line = input()
if not line:
break
student_id, status = line.split()
if status == '0':
health_dict['未感染'] += 1
elif status == '1':
health_dict['阳过'] += 1
elif status == '2':
health_dict['阳康'] += 1
print(f"未感染:{health_dict['未感染']}人")
print(f"阳过:{health_dict['阳过']}人")
print(f"阳康:{health_dict['阳康']}人")
相关问题
当前,学校要求开学时统计各班同学们的健康状况。请编写程序,根据输入的学生健康状态清单,统计各种状态的人数。其中学号用六位整数表示,如220102,数字0代表“未感染”,数字1代表“阳过”,数字2代表“阳康”。
### 回答1:
```python
# 定义三个计数器,分别统计未感染、阳过、阳康的人数
uninfected = 0
positive = 0
recovered = 0
# 循环读入学生的健康状态,直到输入结束符
while True:
try:
status = input()
except:
break # 输入结束符,跳出循环
if status[6] == '0':
uninfected += 1
elif status[6] == '1':
positive += 1
elif status[6] == '2':
recovered += 1
# 输出各种状态的人数
print("未感染:", uninfected)
print("阳过:", positive)
print("阳康:", recovered)
```
说明:
1. 定义三个变量 `uninfected`、`positive`、`recovered`,分别用于统计未感染、阳过、阳康的人数,初始值都为 0。
2. 使用 `while` 循环读入学生的健康状态,并根据状态码更新对应的计数器。
3. 当输入结束符(例如在命令行中按下 Ctrl+D)时,跳出循环。
4. 输出各种状态的人数。
### 回答2:
可以编写一个Python程序来实现这个功能。以下是一个简单的示例代码:
```python
# 初始化各种状态的人数为0
not_infected = 0
positive = 0
recovered = 0
# 循环获取学生健康状态清单
for _ in range(10):
student_status = int(input("请输入学生状态:"))
# 根据学生健康状态进行统计
if student_status == 0:
not_infected += 1
elif student_status == 1:
positive += 1
elif student_status == 2:
recovered += 1
# 输出统计结果
print("未感染人数:", not_infected)
print("阳过人数:", positive)
print("阳康人数:", recovered)
```
这个程序会循环10次,每次获取一个学生的健康状态,并根据状态来更新对应的人数变量。最后打印出各种状态的人数。
你可以根据需要来修改代码,比如更改循环次数、添加更多的状态选项等。
### 回答3:
以下是一个简单的Python程序示例,可以根据输入的学生健康状态清单,统计各种状态的人数:
```python
# 初始化各状态的人数计数
uninfected_count = 0
mild_count = 0
healthy_count = 0
# 循环输入学生的学号和健康状态
while True:
student_id = input("请输入学生学号(输入0结束):")
# 输入0时结束循环
if student_id == "0":
break
health_status = int(input("请输入学生健康状态(0-未感染,1-阳过,2-阳康):"))
# 根据健康状态增加相应的人数计数
if health_status == 0:
uninfected_count += 1
elif health_status == 1:
mild_count += 1
elif health_status == 2:
healthy_count += 1
else:
print("请输入有效的健康状态(0-未感染,1-阳过,2-阳康)!")
# 输出各状态的人数统计结果
print("未感染的人数:", uninfected_count)
print("阳过的人数:", mild_count)
print("阳康的人数:", healthy_count)
```
这个程序通过循环输入学生的学号和健康状态,根据不同的健康状态将人数计数。最后输出各状态的人数统计结果。程序会不断循环输入,直到输入的学号为0时结束统计。
当前,学校要求开学时统计各班同学们的健康状况。请编写程序,根据输入的学生健康状态清单,统计各种状态的人数。其中学号用六位整数表示,如220102,数字0代表“未感染”,数字1代表“阳过”,数字2代表“阳康”。 输入格式: 在第一行中给出1个正整数N(不超过100),表示学生个数。 接下来N行的每一行包括学号和健康状态。 输出格式: 输出三行。 第一行输出“未感染”及其未感染人数。 第二行输出“阳过”及其阳过人数。 第三行输出“阳康”及其阳康人数。
以下是程序的实现:
#include <iostream>
#include <map>
using namespace std;
int main()
{
int n;
cin >> n;
map<int, int> status; //用map记录各种状态的人数
for(int i=0; i<n; i++)
{
int id, s;
cin >> id >> s;
status[s]++;
}
cout << "未感染 " << status[0] << endl;
cout << "阳过 " << status[1] << endl;
cout << "阳康 " << status[2] << endl;
return 0;
}
注意,这里使用了STL中的map来记录各种状态的人数,可以方便地实现统计功能。