交换两个int变量的值,不能使用第三个变量。即a=3,b=5,交换之后a=5,b=3。

复制代码
//法一(正常方法)
int main()
{
	int a = 3;
	int b = 5;
	int tmp = 0;//临时变量
	printf("before:a=%d b=%d\n", a, b);
	tmp = a;
	a = b;
	b = tmp;
	printf("after:a=%d b=%d\n", a, b);
	return 0;
}
//法二(加减法) 有缺陷 a=a+b超出范围就可能出错(可能会溢出)
int main()
{
	int a = 3;
	int b = 5;
	printf("before:a=%d b=%d\n", a, b);
	a = a + b;
	b = a - b;
	a = a - b;
    printf("after:a=%d b=%d\n", a, b);
    return 0;
}
//法三(异或法)
int main()
{
	int a = 3;
	int b = 5;
	printf("before:a=%d b=%d\n", a, b);
	a = a ^ b;//a 011 b 101 异或结果为110
	b - a ^ b;
	a = a ^ b;
	printf("after:a=%d b=%d\n", a, b);
	return 0;
}
相关推荐
小凡子空白在线学习3 分钟前
工作拆分so总结
java·jvm·算法
88号技师4 分钟前
2026年2月新锐一区SCI-完整家庭互动优化算法Undivided Family Interaction Algorithm-附Matlab免费代码
开发语言·算法·数学建模·matlab·优化算法
手揽回忆怎么睡8 分钟前
java打包无效的发行版:xx,临时修复当前窗口指定 JDK21
java·开发语言
李日灐16 分钟前
【优选算法5】位运算经典算法面试题
后端·算法·面试·位运算
汉克老师17 分钟前
GESP5级C++考试语法知识(十四、分治算法(一))
算法·归并排序·排序·分治算法·gesp5级·gesp五级
一直有一个ac的梦想18 分钟前
cmu15445 2025fall lec15 query optimiaztion Pt1
java·服务器·数据库
郝学胜-神的一滴18 分钟前
干货版《算法导论》03:动态数组 × 链表的极致平衡艺术
java·数据结构·c++·python·算法·链表
SamDeepThinking21 分钟前
IntelliJ IDEA 中有什么让你相见恨晚的技巧?
java·后端·程序员
SamDeepThinking22 分钟前
为什么选微服务而不是动态扩容单体
java·后端·架构
风筝在晴天搁浅23 分钟前
字节 LeetCode CodeTop 912.排序数组
算法·leetcode