解题思路:首先根据题意我们可以大致确定一条方向:依次判断第一个数和另外两个的大小,若第一个数较小,则交换,最后输出第一个数即可
注意事项:为了避免交换的代码写两遍,我们可以单独构造一个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 人评分
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:2498 |
【回文数(二)】 (C语言代码)浏览:940 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:400 |
【亲和数】 (C语言代码)浏览:541 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:624 |
蛇行矩阵 (C语言代码)浏览:606 |
用筛法求之N内的素数。 (C语言代码)浏览:595 |
数组输出 (C语言代码)浏览:749 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:416 |
敲七 (C语言代码)浏览:2748 |