输入3个数x,y,z,按大小顺序排序后输出。 要求:利用指针方法实现两数互换,函数原型为:void swap(int *p1,int *p2); 输入提示:printf("please input 3 number x,y,z"); 输出格式:printf("the sorted numbers are:%d,%d,%d\n", ); 程序运行示例: please input 3 number x,y,z4,5,1 the sorted numbers are:1,4,5
时间: 2024-02-23 20:00:59 浏览: 74
好的,以下是利用指针方法实现排序的程序:
```c
#include <stdio.h>
void swap(int *p1, int *p2) {
int temp = *p1;
*p1 = *p2;
*p2 = temp;
}
int main() {
int x, y, z;
printf("please input 3 numbers x, y, z: ");
scanf("%d %d %d", &x, &y, &z);
if (x > y) swap(&x, &y);
if (x > z) swap(&x, &z);
if (y > z) swap(&y, &z);
printf("the sorted numbers are: %d, %d, %d\n", x, y, z);
return 0;
}
```
程序执行流程如下:
1. 首先,程序提示用户输入三个数,并读取这三个数。
2. 接着,程序使用 `swap` 函数对这三个数进行排序,即将它们按从小到大的顺序排序。
3. 最后,程序输出排好序的三个数。
注意,`swap` 函数用来交换两个整数的值,它的参数是两个指向整数的指针。在排序过程中,我们使用了三个 `if` 语句,每个 `if` 语句都比较两个数的大小,并在必要时调用 `swap` 函数来交换它们的值,最终实现了从小到大排序的功能。
阅读全文