黑马程序员技术交流社区

标题: c语言基础: 变量值互换的三种方法 [打印本页]

作者: 463467479    时间: 2015-3-7 19:58
标题: c语言基础: 变量值互换的三种方法
这两天进入写博客阶段了,也为了响应版主的少灌水方针,来顺手贴一些自己写的东西。


这一步分时在看mj老师的c基础中我觉得比较有意思的部分,和大家分享一些。


一、使用临时变量.
  1. int main (void)<span class="token lf" style="box-sizing: border-box; outline: none !important;">
  2. </span>{<span class="token lf" style="box-sizing: border-box; outline: none !important;">
  3. </span>        int a = 10;<span class="token lf" style="box-sizing: border-box; outline: none !important;">
  4. </span>        int b = 20;<span class="token lf" style="box-sizing: border-box; outline: none !important;">
  5. </span>        int temp = b;<span class="token lf" style="box-sizing: border-box; outline: none !important;">
  6. </span>        b = a;<span class="token lf" style="box-sizing: border-box; outline: none !important;">
  7. </span>        a = temp;<span class="token lf" style="box-sizing: border-box; outline: none !important;">
  8. </span>        return 0;<span class="token lf" style="box-sizing: border-box; outline: none !important;">
  9. </span>}
复制代码
什么是免费信息啦?
二、利用加减法
  1.         a = b - a;<span class="token lf" style="box-sizing: border-box; outline: none !important;">
  2. </span>        b = b - a;<span class="token lf" style="box-sizing: border-box; outline: none !important;">
  3. </span>        a = a + b;
复制代码

步骤:1. a = (b - a)2.        b = b - (b - a)        ∴ b = a3.        a = (b - a) + a        ∴ a = b三、利用异或
  1. a = a ^ b;<span class="token lf" style="box-sizing: border-box; outline: none !important;">
  2. </span>b = a ^ b;<span class="token lf" style="box-sizing: border-box; outline: none !important;">
  3. </span>a = a ^ b;
复制代码

步骤1.        A = a ^ b3.        B =  (a ^ b) ^ b        ∵(b ^ b) = 0        B = a ^ 0        ∴ B = a        3.        A = (a ^ b) ^ a        同理可得        A = b注:大小写区分为了看得清楚





最后我有个问题问一下。怎么设置回复可见,我也想快一点积累分数啊 0.0!

作者: 463467479    时间: 2015-3-7 20:01
  1. int main (void)
  2. {
  3.         int a = 10;
  4.         int b = 20;
  5.         int temp = b;
  6.         b = a;
  7.         a = temp;
  8.         return 0;
  9. }
复制代码

作者: 463467479    时间: 2015-3-7 20:03
二、利用加减法

  1.     a = b - a;
  2.     b = b - a;
  3.     a = a + b;
复制代码

作者: 463467479    时间: 2015-3-7 20:04
三、利用异或

  1. a = a ^ b;
  2. b = a ^ b;
  3. a = a ^ b;
复制代码


第一次用代码块居然还抽风了。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2