对 3 个变量按由小到大顺序排序 用带有默认参数的函数实现的C++代码
时间: 2024-05-07 10:16:07 浏览: 169
C语言实现3个数从小到大排序/输出的方法示例
下面是一个用带有默认参数的函数实现对三个变量按由小到大顺序排序的C代码:
```c
#include <stdio.h>
void sort(int *a, int *b, int *c, int ascending_order = 1) {
int temp;
if (ascending_order) {
if (*a > *b) {
temp = *a;
*a = *b;
*b = temp;
}
if (*b > *c) {
temp = *b;
*b = *c;
*c = temp;
}
if (*a > *b) {
temp = *a;
*a = *b;
*b = temp;
}
} else {
if (*a < *b) {
temp = *a;
*a = *b;
*b = temp;
}
if (*b < *c) {
temp = *b;
*b = *c;
*c = temp;
}
if (*a < *b) {
temp = *a;
*a = *b;
*b = temp;
}
}
}
int main() {
int x = 3, y = 1, z = 2;
printf("Original order: x=%d, y=%d, z=%d\n", x, y, z);
sort(&x, &y, &z);
printf("Ascending order: x=%d, y=%d, z=%d\n", x, y, z);
sort(&x, &y, &z, 0);
printf("Descending order: x=%d, y=%d, z=%d\n", x, y, z);
return 0;
}
```
这个程序定义了一个名为 `sort` 的函数,它接受三个指向整数的指针作为参数,并且还有一个默认参数 `ascending_order`,默认值为 `1`,表示按升序排列。如果 `ascending_order` 的值为 `0`,则按降序排列。
在 `sort` 函数中,我们使用了一个简单的冒泡排序算法,先比较前两个数,然后比较后两个数,最后再比较前两个数,这样就可以把三个数按由小到大或由大到小的顺序排列好。
在 `main` 函数中,我们定义了三个变量 `x`、`y` 和 `z`,并且先输出它们的原始顺序。然后我们先调用 `sort` 函数,按升序排列这三个数,并输出结果;接着再次调用 `sort` 函数,按降序排列这三个数,并输出结果。
阅读全文