用c语言写出:不改变整型变量a, b, c的值,利用指针变量*p1,*p2,*p3交换实现上述三个数由大到小的排序和输出
时间: 2024-02-09 07:12:06 浏览: 56
可以使用以下代码实现:
```c
#include <stdio.h>
void sort(int *p1, int *p2, int *p3) {
int 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;
}
}
int main() {
int a = 5, b = 3, c = 7;
int *p1, *p2, *p3;
p1 = &a;
p2 = &b;
p3 = &c;
sort(p1, p2, p3);
printf("排序后的结果为:%d %d %d\n", *p1, *p2, *p3);
return 0;
}
```
这段代码中,我们先定义了三个整型变量a、b和c,以及三个指向整型变量的指针变量p1、p2和p3。然后我们分别将p1、p2和p3指向a、b和c。接下来,我们定义了一个sort函数,它的参数是三个指向整型变量的指针变量p1、p2和p3。在sort函数中,我们通过比较指针变量指向的值的大小,交换它们的值,实现了对a、b和c的排序。最后在main函数中,我们调用sort函数,将p1、p2和p3作为参数传递给它。然后输出排序后的结果。需要注意的是,这个过程中a、b、c的值并没有改变。
阅读全文