使用C语言,编写程序,查找当天实验室开门和关门的人。每天第一个到实验室的人负责开门,最后一个离开实验室的人负责关门。 实验室的考勤系统会记录每人的ID号、到达时间和离开时间。假设实验室有n(n<=20)人,每个人当天一定要离开实验室(即时间不会跨天)。
时间: 2024-03-25 16:42:08 浏览: 23
好的,这是一个关于实验室考勤的问题,我来帮您解答。对于这个问题,我们可以通过以下步骤来解决:
1. 定义一个结构体,存储每个人的ID号、到达时间和离开时间。
2. 读取输入数据,将每个人的考勤信息存储到结构体数组中。
3. 对结构体数组按照到达时间排序,查找第一个到达实验室的人,并记录其ID号。
4. 对结构体数组按照离开时间排序,查找最后一个离开实验室的人,并记录其ID号。
5. 输出开门和关门的人的ID号。
以下是一个C语言的实现代码,仅供参考:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_N 20
struct Record {
int id;
int arrive_time;
int leave_time;
};
int cmp_arrive_time(const void *a, const void *b) {
return ((struct Record *)a)->arrive_time - ((struct Record *)b)->arrive_time;
}
int cmp_leave_time(const void *a, const void *b) {
return ((struct Record *)b)->leave_time - ((struct Record *)a)->leave_time;
}
int main() {
int n;
struct Record records[MAX_N];
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d%d%d", &records[i].id, &records[i].arrive_time, &records[i].leave_time);
}
qsort(records, n, sizeof(struct Record), cmp_arrive_time);
printf("开门的人是%d\n", records[0].id);
qsort(records, n, sizeof(struct Record), cmp_leave_time);
printf("关门的人是%d\n", records[0].id);
return 0;
}
```
以上代码中,我们先定义了一个结构体 `Record`,用于存储每个人的考勤信息。然后,我们读入输入数据,并对结构体数组按照到达时间和离开时间分别排序,最后输出开门和关门的人的ID号。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)