c语言中输入三个数a,b,c,按从小到大顺序输出,要求用指针方法实现
时间: 2024-03-15 13:46:05 浏览: 76
好的,我来为您解答这个问题。
您可以按照以下步骤实现:
1. 定义三个变量 a、b、c,并通过 scanf() 函数从键盘输入这三个数。
2. 定义三个指针变量 pa、pb、pc,分别指向 a、b、c。
3. 定义一个指针数组 p[3],并将指针变量 pa、pb、pc 的地址分别存储到数组中。
4. 对 p 数组进行排序,即将指针变量的地址按照所指向的值的大小进行交换。
5. 输出排序后的三个数。
下面是代码实现:
```c
#include <stdio.h>
void swap(int **p1, int **p2) {
int *tmp = *p1;
*p1 = *p2;
*p2 = tmp;
}
int main() {
int a, b, c;
int *pa, *pb, *pc;
int *p[3];
printf("请输入三个整数:\n");
scanf("%d%d%d", &a, &b, &c);
pa = &a;
pb = &b;
pc = &c;
p[0] = pa;
p[1] = pb;
p[2] = pc;
for (int i = 0; i < 2; i++) {
for (int j = i + 1; j < 3; j++) {
if (*p[i] > *p[j]) {
swap(&p[i], &p[j]);
}
}
}
printf("排序后的结果为:%d %d %d\n", *p[0], *p[1], *p[2]);
return 0;
}
```
希望能对您有所帮助!
阅读全文