C语言从键盘中输入 了个整数,要求定义3个指针 p1,p2,p3,使 p1 指向 了个数中最大值,p2 指向次大值,p3 指向最小值,然后按由大到小的顺序输出这3个数。
时间: 2024-02-23 10:02:37 浏览: 84
好的,这个问题可以这样解决:
```
#include <stdio.h>
void sort(int *p1, int *p2, int *p3) {
int tmp;
if (*p1 < *p2) { // 交换p1和p2,使p1指向最大值
tmp = *p1;
*p1 = *p2;
*p2 = tmp;
}
if (*p1 < *p3) { // 交换p1和p3,使p1指向最大值
tmp = *p1;
*p1 = *p3;
*p3 = tmp;
}
if (*p2 < *p3) { // 交换p2和p3,使p3指向最小值
tmp = *p2;
*p2 = *p3;
*p3 = tmp;
}
}
int main() {
int a, b, c;
printf("请输入三个整数:");
scanf("%d%d%d", &a, &b, &c);
int *p1 = &a, *p2 = &b, *p3 = &c;
sort(p1, p2, p3);
printf("%d %d %d\n", *p1, *p2, *p3);
return 0;
}
```
这段代码中,我们定义了一个 `sort` 函数,传入三个指针,函数内部会将它们指向的三个整数按由大到小的顺序进行排序,最终 `p1` 指向最大值,`p2` 指向次大值,`p3` 指向最小值。在 `main` 函数中,我们输入三个整数,然后定义三个指针指向它们,调用 `sort` 函数进行排序,最后按顺序输出三个数即可。
阅读全文