栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

训练:不创造额外变量,实现两个数的交换

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

训练:不创造额外变量,实现两个数的交换

#include
int main()
{
    int a = 5;
    int b = 3;
    printf("a=%d  b=%dn", a, b);
    

//    算术交换
    //a = a + b;//此时a是a 和b的合
    //b = a - b;//等同于a+b-b,此时b是原来的a
    //a = a - b;//等同于a+b-a,此时a是原来的b
    //printf("a=%d  b=%dn", a, b);
    //因为整形的取值有上限,如果两个整形过大,相加可能溢出丢值
    
    //操作符交换
    //异或
    //a=011,b=101

    a = a ^ b;//a=0 110
    b = a ^ b;//b=0 011
    a = a ^ b;//a=0 101

    printf("a=%d  b=%dn", a, b);
    return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/312353.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号