这是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语言,这个答案是正确的,解决了我的问题。感谢回答者。原来一个问题可以有那么多解法。