zoukankan      html  css  js  c++  java
  • [C]关于交换

    交换(c,c++):

    1)temp交换(也适用于非数型)
    定义一个新的变量,借助它完成交换。

    int a,b;
    a=10; b=15;
    int t;
    t=a; a=b; b=t;

    2)位运算
    位运算不能用于浮点数直间进行交换

    #include <stdio.h>
    main()
    {
        int a,b;
        printf("Please input two numbers:
    ");
        scanf("%d",&a);
        scanf("%d",&b);
    
        printf("
    ");
        printf("The two input numbers is a=%d, b=%d:
    
    ",a,b);
    
        a = a^b;
        b = b^a;
        a = a^b;
    
        printf("The numbers after changing are:a=%d,b=%d
    
    ",a,b);
        getchar();
    }

    3) 算术运算
    简单来说,就是通过普通的+和-运算来实现。代码如下:

    int a,b;
    a=10;b=12; 
    a=b-a; //a=2;b=12
    b=b-a; //a=2;b=10
    a=b+a; //a=10;b=10

    它的原理是:把a、b看做数轴上的点,围绕两点间的距离来进行计算。
    具体过程:第一句“a=b-a”求出ab两点的距离,并且将其保存在a中;第二句“b=b-a”求出a到原点的距离(b到原点的距离与ab两点距离之差),并且将其保存在b中;第三句“a=b+a”求出b到原点的距离(a到原点距离与ab两点距离之和),并且将其保存在a中。完成交换。

    方法1,3对实数均适用,法2只能对整形适用

  • 相关阅读:
    深拷贝浅拷贝
    mock demo
    django 2. 配置信息
    django 1. 入门基础
    java 12. 方法重载
    java 11. 设计规约
    java 10. 参数返回值问题
    java 9. 面向对象之方法设计
    java 8. 面向对象之属性
    java 7. 多维数组
  • 原文地址:https://www.cnblogs.com/wolfray/p/5547278.html
Copyright © 2011-2022 走看看