小伙伴,敢不敢挑战一下面试题中的两数交换吗?
题目:从键盘输入两个数,请用代码实现两数的交换,不能使用第三个变量。
小编目前只学会了两种方法,不知道小伙伴们是否还有其他的方法实现呢,请踊跃评论!
话不多说,直接上代码!
- 原码:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int a = 0;
int b = 0;
//为了验证结果,小编在这里使用了多组输入的方式
while (~scanf("%d %d", &a, &b))
{
printf("a=%d,b=%d\n", a, b);
//利用两数相减来实现;
a = a + b;
b = a - b;
a = a - b;
printf("a=%d,b=%d\n", a, b);
}
return 0;
}
- 结果:
-
利用两数异或来实现
- 分析:
废话不多说,直接上代码
-
源码:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() { int a = 0; int b = 0; //为了验证结果,小编在这里使用了多组输入的方式 while (~scanf("%d %d", &a, &b)) { printf("a=%d,b=%d\n", a, b); //利用两数异或来实现; a = a^b; b = a^b; a = a^b; printf("a=%d,b=%d\n", a, b); } return 0; } - 结果:
不知道大家是否还有其它的实现方式呢?请大家多多留言评论,让我们一起成长!