用指针排序三个整数
时间: 2023-07-01 17:07:24 浏览: 61
可以使用指针来排序三个整数,具体步骤如下:
1. 定义三个整数变量a、b、c,并使用scanf()函数从键盘输入它们的值。
2. 定义三个指向整数的指针变量pa、pb、pc,并分别让它们指向a、b、c。
3. 使用if语句和指针操作,将三个指针变量按照升序排列。比如,如果*a > *b,那么交换pa和pb的指向,以实现a、b的升序排列。
4. 最后输出a、b、c的值即可。
示例代码如下:
```c
#include <stdio.h>
int main()
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
int *pa = &a, *pb = &b, *pc = &c;
if (*pa > *pb) {
int *tmp = pa;
pa = pb;
pb = tmp;
}
if (*pa > *pc) {
int *tmp = pa;
pa = pc;
pc = tmp;
}
if (*pb > *pc) {
int *tmp = pb;
pb = pc;
pc = tmp;
}
printf("%d %d %d\n", *pa, *pb, *pc);
return 0;
}
```
相关问题
使用指针对三个整数进行排序。
好的,可以使用指针来对三个整数进行排序,具体实现如下:
```c
#include <stdio.h>
void sort(int *a, int *b, int *c) {
int temp;
if (*a > *b) {
temp = *a;
*a = *b;
*b = temp;
}
if (*a > *c) {
temp = *a;
*a = *c;
*c = temp;
}
if (*b > *c) {
temp = *b;
*b = *c;
*c = temp;
}
}
int main() {
int a = 3, b = 1, c = 2;
printf("Before sorting: a=%d, b=%d, c=%d\n", a, b, c);
sort(&a, &b, &c);
printf("After sorting: a=%d, b=%d, c=%d\n", a, b, c);
return 0;
}
```
运行结果为:
```
Before sorting: a=3, b=1, c=2
After sorting: a=1, b=2, c=3
```
这里定义了一个 `sort` 函数,接收三个整数的指针作为参数,然后使用冒泡排序的思想将它们从小到大排序。在 `main` 函数中调用 `sort` 函数,并将三个整数的地址作为参数传入。最后输出排序后的结果。
定义max函数使用指针对三个整数进行排序。
下面是使用指针对三个整数进行排序的max函数的定义:
void max(int *a, int *b, int *c) {
if (*a > *b) {
int temp = *a;
*a = *b;
*b = temp;
}
if (*b > *c) {
int temp = *b;
*b = *c;
*c = temp;
}
if (*a > *b) {
int temp = *a;
*a = *b;
*b = temp;
}
}
这个函数将三个整数按升序排序,使用指针可以直接修改原始变量的值,而不需要返回排序后的结果。