一个关于c语言指针的练习题

编写并测试一个函数,该函数以3个double变量的地址作为参数,把最小值放入第1个变量,中间值放入第2个变量,最大值放入第3个变量。


#include<stdio.h>

void larger_of(double* u, double* v, double* w);

int main(void)
{
    double x = 3.2, y = 5.3,z = 1.1;
    larger_of(&x, &y, &z);
    printf("%g   %g   %g\n", x, y, z);
    return 0;
}

void larger_of(double* u, double* v,double *w)
{
    double min,max,cnt;
    min = (*u > *v ? *v : *u) > *w ? *w : (*u > *v ? *v : *u);
    max = (*u > *v ? *u : *v) > *w ? (*u > *v ? *v : *u) : *w;
    cnt = (*u + *v + *w) - min - max;
    *u = min;
    *v = max;
    *w = cnt;
}