• 交换两个数的方法


    示例代码如下:

     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.

    顺序  选择  循环  坚持

     

    作者:kaizen
    声明:本文版权归作者和博客园共有,欢迎转载。但未经作者同意必须保留此声明,且在文章明显位置给出本文链接,否则保留追究法律责任的权利。
    签名:顺序 选择 循环
  • 相关阅读:
    mysql存儲過程+游標的應用實例5/17
    mysql存儲過程+遊標應用之:找缺號5/19
    轉:愚公移山
    c++中的头文件
    栈和堆:生存空间
    java中的类加载
    c++中的连接
    访问static变量和方法
    子类调用构造函数的过程
    c++中变量的存储种类
  • 原文地址:https://www.cnblogs.com/Braveliu/p/2847447.html
Copyright © 2020-2023  润新知