甲流病人初筛(结构体数组)pta
时间: 2025-01-02 16:25:59 浏览: 10
### 关于使用结构体数组进行甲流病人初筛的 PTA 题目解法
#### 定义结构体
为了实现对甲流病人的初步筛查,定义一个 `patient` 结构体来存储每位患者的信息。此结构体应至少包含患者的编号、姓名、体温和其他症状等字段。
```c
struct patient {
char num[10]; // 学号或身份证号码
char name[20]; // 姓名
float temperature; // 体温
int symptoms; // 是否有其他症状(如咳嗽、乏力),可以用整数表示不同组合的症状
};
```
#### 输入数据并初始化结构体数组
创建一个函数用于输入多个病患的数据到结构体数组中,并计算实际录入的人数。
```c
void input_patients(struct patient *p, int n) {
printf("请输入%d位病患的信息:\n", n);
for (int i = 0; i < n; ++i) {
scanf("%s %s %f %d", p[i].num, p[i].name, &p[i].temperature, &p[i].symptoms);
}
}
```
#### 初步筛选逻辑
编写一个函数来进行初步筛选工作,比如设定阈值温度为38度以上视为发热状态;如果有任何额外症状也标记出来作为重点观察对象。
```c
#define FEVER_THRESHOLD 38.0F
// 对所有记录执行初步筛选操作
void screen_patients(struct patient *p, int n) {
printf("\n以下是可能感染H1N1流感病毒的重点关注人员列表:\n");
for (int i = 0; i < n; ++i) {
if ((p[i].temperature >= FEVER_THRESHOLD || p[i].symptoms != 0)) {
printf("ID:%s Name:%s Temperature:%.1f Symptoms:%d\n",
p[i].num, p[i].name, p[i].temperature, p[i].symptoms);
}
}
}
```
上述代码实现了基本的功能框架,可以根据具体需求调整细节部分[^1]。
阅读全文