C语言练习题-C语言练习题实例66
题目:输入3个数a、b、c,按照大小顺序输出。
程序分析:利用指针方法。
实例
#include <stdio.h>
void swap(int *, int *);
int main(void) {
int a, b, c;
int *p1, *p2, *p3;
printf("输入 a, b ,c:\n");
scanf("%d %d %d", &a, &b, &c);
p1 = &a;
p2 = &b;
p3 = &c;
if (a > b)
swap(p1, p2);
if (a > c)
swap(p1, p3);
if (b > c)
swap(p2, p3);
printf("%d %d %d\n", a, b, c);
}
void swap(int *s1, int *s2) {
int t;
t = *s1;
*s1 = *s2;
*s2 = t;
}
以上代码执行输出结果为:
输入 a, b ,c:
1 3 2
1 2 3
在上述代码中,我们通过指针方法实现了按照大小顺序输出三个数。首先,我们使用scanf
函数从用户输入中读取三个数的值。然后,我们声明了三个指针p1
、p2
和p3
,并将它们分别指向变量a
、b
和c
。接下来,我们使用条件语句和swap
函数交换指针所指向的变量的值,以确保它们按照从小到大的顺序排列。最后,我们使用printf
函数按顺序输出三个数的值。
请注意,在swap
函数中,我们通过指针参数*s1
和*s2
来交换变量的值。使用指针参数可以直接修改传递给函数的变量,从而实现了交换的操作。