本文主要是介绍C语言实现两个变量值交换的三种方式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《C语言实现两个变量值交换的三种方式》两个变量值的交换是编程中最常见的问题之一,以下将介绍三种变量的交换方式,其中第一种方式是最常用也是最实用的,后两种方式一般只在特殊限制下使用,需要的朋友可以参考下...
1.使用临时变量(推荐)
这是日常使用最多的一种方式,只需要额外申请一个临时变量,简单实用
#include<stdio.h> int main() { int a = 5; int b = 3; printf("交换前 %d %d\n", a, b); int c = a; //a的值放到临时变量中 androida = b; //b的值放到a中 b = c; //临时变量中存放的a的值放到b中 printf("交换后 %d %d\n", a, b); China编程 return 0; }
2.相加和相减的方式(值较大时可能丢失数据)
使用这种方式的环境,就是在条件不允许创建额外的临时变量时(比如题目要求,面试官要求)
但是这种情况虽然能达到交换的效果,但是在两个变量较大时(接近整型变量的上限),求和之后就会丢失一部分的数据,导致结果出错
#include<stdio.h> int main() { int pythona = 5; int b = 3; printf("交换前 %d %d\n", a, b); a = a + b; b = a - b; a = a - b; printf("交换后 %d %d\n", a, b); return 0; }
3.按位异或运算
这种方式巧妙得运用了按位异或的计算特点——对任何两个值进行按位异或运算之后,再拿结果与原来的一个值进行编程按位异或,都会得到另外一个原来的值
这种方式解决了上一种方式存在的丢失数据问题,且不需要额外的临时变量,缺点是可读性较差
#include<stdio.h> int main() {编程 int a = 5; int b = 3; printf("交换前 %d %d\n", a, b); a = a ^ b; b = a ^ b; a = a ^ b; printf("交换后 %d %d\n", a, b); return 0; }
到此这篇关于C语言实现两个变量值交换的三种方式的文章就介绍到这了,更多相关C语言两个变量值交换内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!
这篇关于C语言实现两个变量值交换的三种方式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!