码迷,mamicode.com
首页 > 编程语言 > 详细

黑马程序员-C语言基础:两个变量交换值的方法

时间:2014-05-05 22:11:33      阅读:518      评论:0      收藏:0      [点我收藏+]

标签:style   blog   class   code   java   color   

学习任何语言基础时,两个数值得交换是必须掌握的,下面简绍3中方式(c语言)

方法一:利用数学的计算技巧

bubuko.com,布布扣
 1 #include <stdio.h>
 2 int main()
 3 {
 4     
 5     int a =10, b = 20;
 6     
 7     printf("交换前a=%d, b=%d\n", a, b);
 8     
 9     a = a - b;
10     b = a + b;
11     a = b - a;
12     
13     printf("交换后a=%d, b=%d\n", a, b);
14     
15     return 0;
16 }
bubuko.com,布布扣

这种方法的写法不唯一,对于a,b;只要先给其中一个先赋予a-b,其他的自己算一下就能写出来;

方法二:第三方变量,也是最常用,可读性最好的

bubuko.com,布布扣
 1 #include <stdlib.h>
 2 #include <stdio.h>
 3 int main()
 4 {
 5 
 6     int a =10, b = 20;
 7     printf("交换前a=%d, b=%d\n", a, b);
 8     
 9     int temp = a;//先定义一个临时变量
10     a = b;
11     b = temp;
12     
13     printf("交换后a=%d, b=%d\n", a, b);
14     
15     return 0;
16 }
bubuko.com,布布扣

方法三:位运算,利用^异或运算的特点:a^b^a = a^a^b = 0^b = b,交换律,相同数值异或为0,0和任何数异或为任何数

bubuko.com,布布扣
 1 #include <stdio.h>
 2 int main()
 3 {
 4     int a =10, b = 20;
 5     printf("交换前a=%d, b=%d\n", a, b);
 6     
 7     a = a^b;
 8     b = b^a;
 9     a = a^b;
10     
11     printf("交换后a=%d, b=%d\n", a, b);
12     
13     return 0;
14 }
bubuko.com,布布扣

 

黑马程序员-C语言基础:两个变量交换值的方法,布布扣,bubuko.com

黑马程序员-C语言基础:两个变量交换值的方法

标签:style   blog   class   code   java   color   

原文地址:http://www.cnblogs.com/cxbblog/p/3704899.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!