解题思路:首先根据题意我们可以大致确定一条方向:依次判断第一个数和另外两个的大小,若第一个数较小,则交换,最后输出第一个数即可
注意事项:为了避免交换的代码写两遍,我们可以单独构造一个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分
1 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复