> 文档中心 > 【每日C语言】将三个整数按从大到小的顺序输出

【每日C语言】将三个整数按从大到小的顺序输出

问题分析:三个整数(a、b、c)相互比较,调整顺序,将最大值放在a,中间值放在b,最小值放在c

解决过程:

1、键盘输入三个整数;

2、三个整数相互比较,调整顺序;

3、显示输出 a、b、c ;

运行环境:Visual Studio 2022

初始版-代码:

#include #include int main(){int a = 0;int b = 0;int c = 0;int tmp = 0;//输入scanf("%d %d %d", &a, &b, &c);//调整顺序if (a < b){tmp = a;a = b;b = tmp;}if (a < c){tmp = a;a = c;c = tmp;}if (b < c){tmp = b;b = c;c = tmp;}//输出 - 从大到小printf("%d %d %d", a, b, c);return 0;}

进阶版-代码:

​#include #include void Swap(int *x,int *y){int tmp = 0;tmp = *x; //解引用*x = *y;*y = tmp;}int main(){int a = 0;int b = 0;int c = 0;//输入scanf("%d%d%d", &a, &b, &c);//调整顺序if (a < b){Swap(&a, &b);}if (a < c){Swap(&a, &c);}if (b < c){Swap(&b, &c);}//输出 - 从大到小printf("%d %d %d\n", a, b, c);return 0;}​

补充:进阶版-代码可能部分C语言初学者会看不懂,下面就此问题简单展开一下吧!

1、  须重复使用,故定义一个Swap函数,直接调用,完美解决该功能;

2、int *x、int *y   

// x、y是指针变量,用于存放地址

// * 说明 x,y 是指针变量

// int 说明 x,y 执行的对象是int类型

3、*x、*y 

// * 解引用操作

// *x 就是通过 x 存放的地址找到 a;*y 就是通过 y 存放的地址找到 b

举例: