解题思路:首先根据题意我们可以大致确定一条方向:依次判断第一个数和另外两个的大小,若第一个数较小,则交换,最后输出第一个数即可

注意事项:为了避免交换的代码写两遍,我们可以单独构造一个swap函数实现交换,但是因为在swap函数里所传递的是一个主函数里对应参数的副本,即形参,简单的改变形参的值并不会传递到实参上,所以要利用指针来实现这一操作。

int swap(int* x, int* y)

{

int t=*x;

*x=*y;

*y=t;

return 0;                    //x,y分别是指向啊ab的指针,这样改变了*x和*y的值相当于改变了x,y所指向的值,也就改变了a,b

}

当然也可以采用下面的异或运算的方法交换值


参考代码:

#include<stdio.h>

int swap(int* x, int* y)

{

*x = *x ^ *y;

*y = *x ^ *y;

*x = *x ^ *y;

return 0;

}

int main()

{

int a, b, c;

scanf_s("%d %d %d", &a, &b, &c);

if (a < b)

{

swap(&a, &b);

}

if (a < c)

{

swap(&a, &c);

}

printf("%d", a);

return 0;

}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论