qsort(activities, n, sizeof(struct Activity), compareActivities);

`qsort()` 是 C 标准库中的一个快速排序函数,用于对数组进行排序。它的参数如下:

```c
void qsort(void* base, size_t num, size_t size, int (*compar)(const void*, const void*))
```

- `base`:需要排序的数组指针。
- `num`:数组中元素的数量。
- `size`:每个元素的大小(字节数)。
- `compar`:用于指定比较函数的函数指针,用于比较两个元素的大小关系。

在代码中,我们把需要排序的活动存储在一个结构体数组中,即 `activities` 数组。因此,在调用 `qsort()` 函数时,我们把该数组作为第一个参数,并把数组长度 `n` 作为第二个参数。

对于第三个参数,它是每个元素的大小(字节数)。在本例中,每个元素是一个包含起始时间和结束时间的结构体类型。因此,我们使用 `sizeof(struct Activity)` 来获取结构体所占用空间大小。

最后一个参数是比较函数指针,这里我们使用自定义函数 `compareActivities()` 来比较两个活动根据结束时间之间的先后顺序。注意到它返回值为整型数值:

```c
int compareActivities(const void* a, const void* b) {
    struct Activity* A = (struct Activity*)a;
    struct Activity* B = (struct Activity*)b;
    return A->end - B->end;
}
```

这是因为 `qsort()` 函数要求比较函数返回一个整数值,需要满足以下条件:

- 若 `a > b`,则返回正整数。
- 若 `a == b`,则返回 0。
- 若 `a < b`,则返回负整数。

在本例中,我们把比较函数的函数指针作为第四个参数传递给了 `qsort()` 函数。这样,在排序时就会根据结束时间(即上面代码中的 `end` 字段)来按从小到大的顺序排序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值