函数指针三数abc排序
时间: 2023-12-13 11:34:13 浏览: 147
以下是使用函数指针对三个数进行排序的示例代码:
```c
#include <stdio.h>
// 比较函数,用于排序
int(int *a, int *b) {
return *a - *b;
}
// 交换函数,用于排序
void swap(int *a, int *b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
// 排序函数,使用函数指针作为参数
void sort(int *a, int *b, int *c, int (*cmp)(int *, int *)) {
if (cmp(a, b) > 0) {
swap(a, b);
}
if (cmp(a, c) > 0) {
swap(a, c);
}
if (cmp(b, c) > 0) {
swap(b, c);
}
}
int main() {
int a = 3, b = 1, c = 2;
printf("Before sort: a=%d, b=%d, c=%d\n", a, b, c);
sort(&a, &b, &c, cmp);
printf("After sort: a=%d, b=%d, c=%d\n", a, b, c);
return 0;
}
```
运行结果为:
```
Before sort: a=3, b=1, c=2
After sort: a=1, b=2, c=3
```
阅读全文