数值交换(10 分) | 您所在的位置:网站首页 › c语言数值交换用函数表达吗 › 数值交换(10 分) |
数值交换是一种在任何编程语言中都经常被使用的技巧,现在请你用C语言实现两个数值的交换。 输入格式:输入两个整数a,b 输出格式:交换a和b的值并输出。 输入样例:3 4 输出样例:4 3 法一: #include int main() { int x,y; scanf("%d %d", &x, &y); int t = x; x = y; y = t; printf("%d %d", x, y); //三变量交换法 return 0; }此方法需要创建临时变量,这种方法最简单也最容易想到,但有时候会让我们不创建临时变量来进行数值交换。那我们就需要掌握一些别的方法呦! 法二: #include int main() { int x, y; scanf("%d %d", &x, &y); x = x + y; y = x - y; x = x - y; printf("%d %d", x, y); //加减法 return 0; }此方法不需要创建临时变量(利用两数的和去减任意一个数),缺陷是两个数的和可能会越界。所以,我们在数值小的时候可以用。如果我们需要写这样的被调用函数,同样这是一种假交换,函数调用结束后原本的值并没有真正交换。 法三: #include int main() { int x, y; scanf("%d %d", &x, &y); x = x ^ y; y = x ^ y; x = x ^ y; printf("%d %d", x, y); //异或运算 return 0; }此方法同法二不需要创建临时变量(利用异或),这里简单说一下,异或的意思是判断两个相应的位值是否为“异”,为“异”(值不同)就取真(1),否则取假(0) 此方法是基于二进制运算的基础,属于位运算中的一种运算 |
CopyRight 2018-2019 实验室设备网 版权所有 |