欢迎光临散文网 会员登陆 & 注册

C语言基础:两个变量交换值的方法

2023-03-17 10:41 作者:吴小敏63  | 我要投稿

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

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

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 }

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

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

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 }

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

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 }


C语言基础:两个变量交换值的方法的评论 (共 条)

分享到微博请遵守国家法律