昨夜无风无月


私信TA

用户名:dotcpp0612624

访问量:639

签 名:

知其不可奈何而安之若命

等  级
排  名 11245
经  验 1041
参赛次数 0
文章发表 7
年  龄 18
在职情况 学生
学  校 西安电子科技大学
专  业 计算机

  自我简介:

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

注意事项:为了避免交换的代码写两遍,我们可以单独构造一个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分

2 人评分

  评论区

  • «
  • »