从键盘输入三个整数,要求设三个指针变量p1,p2, p3,使p1指向三个数的最大者,p2指向次大者,p3指向最小者,然后按由小到大的顺序输出这三个数用c语言
时间: 2024-03-09 18:48:10 浏览: 64
C语言实验-有3个整数a,b,c,由键盘输入,输出其中最大的数(或最小的数)。
好的,下面是一个示例代码:
```c
#include <stdio.h>
int main() {
int a, b, c;
int *p1, *p2, *p3; // 定义三个指针变量
int temp;
printf("请输入三个整数:");
scanf("%d %d %d", &a, &b, &c);
// 初始化指针变量
p1 = &a;
p2 = &b;
p3 = &c;
// 排序
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;
}
// 输出
printf("%d %d %d\n", *p3, *p2, *p1);
return 0;
}
```
这个程序要求用户从键盘上输入三个整数,并将它们存储在变量 `a`、`b` 和 `c` 中。
然后,程序定义了三个指针变量 `p1`、`p2` 和 `p3`,并将它们分别初始化为 `a`、`b` 和 `c` 的地址。
接下来,程序使用三个 `if` 语句将 `p1`、`p2` 和 `p3` 指向三个数的最大者、次大者和最小者。具体地,程序先比较 `p1` 和 `p2` 所指向的值,如果 `p1` 所指向的值小于 `p2` 所指向的值,则交换它们所指向的值。然后,程序再比较 `p1` 和 `p3` 所指向的值,如果 `p1` 所指向的值小于 `p3` 所指向的值,则交换它们所指向的值。最后,程序再比较 `p2` 和 `p3` 所指向的值,如果 `p2` 所指向的值小于 `p3` 所指向的值,则交换它们所指向的值。
最后,程序使用 `printf()` 函数按照由小到大的顺序输出这三个数。
需要注意的是,这个程序可以处理相同的整数。如果要处理相同的浮点数,则需要使用浮点数的比较函数(如 `fabs()` 或 `EPS`)来判断它们是否相等。
阅读全文