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只能对整形适用

  • 相关阅读:
    自动化测试常用断言的使用方法
    python接口自动化-有token的接口项目使用unittest框架设计
    postman
    HTML5基础
    HTML基础
    Web常见产品问题及预防
    JSON语法详解
    HTTP协议详解
    接口理论详解
    设计模式之装饰者模式
  • 原文地址:https://www.cnblogs.com/wolfray/p/5547278.html
Copyright © 2011-2022 走看看