成都创新互联网站制作重庆分公司

C语言如何轻松搞定变量值交换-创新互联

小编给大家分享一下C语言如何轻松搞定变量值交换,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

成都创新互联公司专注于网站建设,为客户提供做网站、网站建设、网页设计开发服务,多年建网站服务经验,各类网站都可以开发,品牌网站建设,公司官网,公司展示网站,网站设计,建网站费用,建网站多少钱,价格优惠,收费合理。

1.临时变量法

方法解释:采用临时变量的方法,作为中间过渡,这是最简单也是大家最容易想到的方法,此法在各种场合应用极多,应该熟练掌握。

#include
int main(void){
     int a=1,b=2,tmp;     
     tmp =a;     
     a=b;     
     b=tmp;     
    printf("%d %d",a,b);
     return 0; 
}

2.加减交换法

方法解释:顾名思义,使用数学中的加减法进行交换,先把a+b的结果暂时先保存在变量a中,然后通过这改变后的a和原始的b进行减法就可以得到交换后的b,缺点是a+b的结果可能越界。

#include
int main(void){     
       int a=1,b=2;
     a = a + b;
     b = a - b;
     a = a - b;     
     printf("%d %d",a,b);     
     return 0;
 }

3.乘除交换法

方法解释:该方法与加减法类似,就是把加减替换为乘除,缺点是因为采用了乘法,因此比加法更容易越界,使用时应谨慎。

#include
int main(void){     
       int a=1,b=2;
     a = a * b;
     b = a / b;
     a = a / b;     
     printf("%d %d",a,b);     
     return 0;
 }

4.异或交换法

方法解释:巧妙使用异或运算来进行交换,这种方法主要利用了异或的特性a^b的值先保存到a,因为a^b^b=a所以可以顺利完成交换,这种方法是很完美的,不存在越界的问题。

#include
int main(void){    
 int a=1,b=2;     
 a = a ^ b;     
 b = a ^ b;     
 a = a ^ b;    
 printf("%d %d",a,b);    
 return 0; }

5.移位交换法

方法解释:这种方法不太常用,原理是把原来的int类型的a的值拆分成高16位和低16位,相当于多了16位的暂存空间可以周转,缺点是如果a或者b超过了16位,这种方法就会出错,此方法较复杂且容易出错,因此不建议大家使用。

#include
int main(void){     
int a=1,b=2;
     a <<= 16;
     a |= b;
     b = a >> 16;
     a = a & 0xffff;     
     printf("%d %d",a,b);     
     return 0;
 }

看完了这篇文章,相信你对C语言如何轻松搞定变量值交换有了一定的了解,想了解更多相关知识,欢迎关注创新互联成都网站设计公司行业资讯频道,感谢各位的阅读!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章标题:C语言如何轻松搞定变量值交换-创新互联
当前链接:http://cxhlcq.com/article/djojpe.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部