函数以3个double变量的地址作为参数,把最小值放入第1个函数......

这是c primer plus第九章编程练习第六题
编写并测试一个函数,该函数以3个double变量的地址作为参数,把最
小值放入第1个函数,中间值放入第2个变量,最大值放入第3个变量。

可以这样:

#include <stdio.h>   

void swap(double *x, double *y) { //定义交换函数
    double t = *x;
    *x = *y;
    *y = t;
}

void sort3(double *x, double *y, double *z) { //定义排序函数
    if (*x > *y)
        swap(x, y);
    if (*x > *z)
        swap(x, z);
    if (*y > *z)
        swap(y, z);
}


int main() {
    double x, y, z;
    scanf("%lf %lf %lf",&x,&y,&z); //终端输入时请用空格分隔各数
    sort3(&x, &y, &z);
    printf("The order sequence is: %.1lf %.1lf %.1lf \n", x, y, z); //按从小到大顺序输出
    return 0;
}

如果对您有帮助,请采纳答案好吗,谢谢!

正在学习c语言,这个答案是正确的,解决了我的问题。感谢回答者。原来一个问题可以有那么多解法。