用c语言写一个程序:第一行输入派对的场数,第二行开始每行输入每场派对的开始时间和结束时间,输出最多能参加几场派对
时间: 2023-02-07 20:13:09 浏览: 102
以下是用 C 语言写的程序:
```
#include <stdio.h>
#include <stdlib.h>
struct Event {
int start_time;
int end_time;
};
int compare(const void *a, const void *b) {
struct Event *event1 = (struct Event *)a;
struct Event *event2 = (struct Event *)b;
return event1->end_time - event2->end_time;
}
int main() {
int n;
scanf("%d", &n);
struct Event events[n];
for (int i = 0; i < n; i++) {
scanf("%d%d", &events[i].start_time, &events[i].end_time);
}
qsort(events, n, sizeof(struct Event), compare);
int count = 0;
int last_end_time = 0;
for (int i = 0; i < n; i++) {
if (events[i].start_time >= last_end_time) {
count++;
last_end_time = events[i].end_time;
}
}
printf("%d\n", count);
return 0;
}
```
程序的思路是:
1. 读入派对的场数 `n` 和每场派对的开始时间和结束时间
2. 将所有派对按照结束时间排序
3. 从头到尾遍历派对,如果当前派对的开始时间大于等于上一场派对的结束时间,那么计数器加一,并将最后的结束时间更新为当前派对的结束时间
4. 输出最多能参加的派对场数
阅读全文