交换两个数的方法

示例代码如下:

复制代码
 1 #include <iostream>
 2 using  namespace std;
 3 
 4 /*
 5  * 指针法(中间变量1)
 6  */
 7 void swap1(int *pa, int *pb)
 8 {
 9     int temp = *pa;
10     *pa = *pb;
11     *pb = temp;
12 }
13 
14 /*
15  * 引用法(中间变量2)
16  */
17 void swap2(int &ra, int &rb)
18 {
19     int temp = ra;
20     ra = rb;
21     rb = temp;
22 }
23 
24 /*
25  * 相互加减法
26  */
27 void swap3(int &a, int &b)
28 {
29     a = a + b;  // 可能会溢出
30     b = a - b;
31     a = a - b;
32 }
33 
34 /*
35  * 异或法
36  */
37 void swap4(int &a, int &b)
38 {
39     a ^= b;
40     b ^= a;
41     a ^= b;
42 }
43 
44 void print(int &a, int &b)
45 {
46     cout <<"a = "<< a << "  " <<"b = "<< b << endl;
47 }
48 
49 void main(int argc, char* argv[])
50 {
51     int a =100, b = 200;
52     print(a, b);
53     // 指针法(中间变量1)
54     swap1(&a, &b);
55     print(a, b);
56     // 引用法(中间变量2)
57     swap2(a, b);
58     print(a, b);
59     // 相互加减法
60     swap3(a, b);
61     print(a, b);
62     // 异或法
63     swap4(a, b);
64     print(a, b);
65 
66     system("pause");
67 }
68 
69 // run out:
70 /*
71 a = 100  b = 200
72 a = 200  b = 100
73 a = 100  b = 200
74 a = 200  b = 100
75 a = 100  b = 200
76 请按任意键继续. . .
77 */
复制代码

以上四种交换方法,各有利弊。

 

Good Good Study, Day Day Up.

顺序  选择  循环  坚持

 

posted @   kaizenly  阅读(442)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
打赏

喜欢请打赏

扫描二维码打赏

微信打赏

点击右上角即可分享
微信分享提示