不改变整型变量a, b, c的值,利用指针变量*p1,*p2,*p3交换实现上述三个数由大到小的排序和输出
时间: 2024-02-09 19:11:59 浏览: 113
好的,以下是一个示例代码,供你参考:
```c
#include <stdio.h>
void sort(double *p1, double *p2, double *p3);
int main() {
double a, b, c;
printf("请输入三个实数:");
scanf("%lf %lf %lf", &a, &b, &c);
sort(&a, &b, &c);
printf("按从大到小排序后的值为:%lf %lf %lf\n", a, b, c);
return 0;
}
void sort(double *p1, double *p2, double *p3) {
double temp;
if (*p1 < *p2) {
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
if (*p1 < *p3) {
temp = *p1;
*p1 = *p3;
*p3 = temp;
}
if (*p2 < *p3) {
temp = *p2;
*p2 = *p3;
*p3 = temp;
}
}
```
该程序利用指针变量*p1,*p2,*p3交换实现三个数由大到小的排序,并输出结果。在sort函数中,采用了冒泡排序的思想,先将*p1和*p2进行比较,如果*p1小于*p2,则交换*p1和*p2的值;再将*p1和*p3进行比较,如果*p1小于*p3,则交换*p1和*p3的值;最后再将*p2和*p3进行比较,如果*p2小于*p3,则交换*p2和*p3的值。这样就可以将*p1、*p2、*p3按从大到小的顺序排序了,而不改变原来的a、b、c的值。
阅读全文