全教育培训行业第三方平台平台就业机构
扫码试听
扫码试听
Q:2638333071
首页 > 行业动态 > > C语言中,怎样不用中间变量而互换两个变量的值呢?(c语言两个变量交换不用临时变量)
行业动态 行业问答 课程问答 零基础学习 就业前景 技术干货

C语言中,怎样不用中间变量而互换两个变量的值呢?(c语言两个变量交换不用临时变量)

发布时间:3 个 月 前 栏目:行业动态 浏览:

1、C语言中,怎样不用中间变量而互换两个变量的值呢?

有两种方式可以不使用中间变量,交换同类型的变量a,b的值:

1 .使用加法操作

a+=b;

b=a-b;

a -= b;

2 .使用异或操作:

a^=b;

b^=a;

a^=b;

C语言运算符是说明特定操作的符号, 它是构造C语言表达式的工具。C语言的运算异常丰富,除了控制语句和输入输出以外的几乎所有的基本操作都为运算符处理。

除了常见的三大类,算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符,比如位运算符。

C语言中,怎样不用中间变量而互换两个变量的值呢?

2、如何在不使用第三个变量的情况下交换两个数的值

如果要交换两个数(比如a和b)的值,一般情况下,我们会想到使用第三个变量c作为一个临时存放的工具。

举个例子:

通过这样的方式来达到交换a和b的值。那么如何在不使用第三个变量的情况下交换两个数的值呢?以下有一个方法:

我们还是令a=1,b=2,所以a

//a是小的数,b是大的数,求出两个数之间的差值,将它赋给a

//大的数(b)减去这个差值,得到较小的数,将它赋给b

//小的数加上差值,得到大的数,将它赋给a,完成交换

C语言中,怎样不用中间变量而互换两个变量的值呢?

3、c语言交换变量a和b的值是什么?

c语言交换变量a和b的值是:p、q,但没有给它们分配地址。

后面的程序,p、q分别指向了a、b的地址,所以可用。这个与媒介无关,计算机原理中很清楚地讲到,内存地址和内容,这个是C语言的基础。

c语言交换变量a和b的值是互相交换的。交换在常规办法中引入第三个变量是为了防止在赋值过程中丢失信息。如果有办法在赋值过程中保持信息,就不需要另外的变量了。就比如这里的a先等于b-a, 再让b=a。

有两个变量a 和b,想要交换它们的值,能不能这样操作呢?

不能,这样操作的意思是把a的值放到b中,然后b中的值已经被覆盖掉了,已经不是b原来的那个值了,所以是没有意义的。

既然不能这样操作,可以先把b的值备份一下,这样就可以覆盖了。然后设置一个变量t,先把b中的变量备份到t中,t=b。再把a中的变量放到b中,b=a。最后把备份的b放到a中,a=t。

4、不用中间变量交换a和b的值,有哪些方法?

a=b^a;b=a^b;a=b^a;用异或这种方法肯定没错,

我想问的是 b= (a=b)*0 + a ; 这种方法可以吗? 不可以请详细说明下谢谢!

5、在C语言中如何将两个数进行互换

将两个数进行互换的方法有两种形式:

1、借助中间变量完成,此方法直观,易理解,使用最多

2、不需要中间变量,通过变量身的运算完成交换。

参考代码:

方法1:

inta=2,b=3,t;

t=a;//先将a存储到临时变量t中

a=b;//将b存储到a中

b=t;//将临时变量中的原a值存储到b中

printf("a=%db=%d\

",a,b);

方法2:

inta=2,b=3,t;

a+=b;//把两数之和存到a中

b=a-b;//用两数和减去b可得原a,存储到b中

a=a-b;//因为b现在是原a值,所以,用两数和减去b(原a)可得原b,存储到a中

此方法,还可以用异或运算来实现,原理相同。

上一篇:没有了
技术干货
零基础学习
行业多年深耕,从这报名,学费立减800
  • 岳同学180****1241刚刚成功领取
  • 胡同学134****6431刚刚成功领取
  • 李同学150****6122刚刚成功领取
  • 张同学136****2231刚刚成功领取
  • 孙同学178****5521刚刚成功领取
  • 齐同学156****7788刚刚成功领取
猜你喜欢
查看更多
相关推荐
查看更多
现在学习,我的薪资能达到多少?
立即报名

联系我们:

Q:2638333071

鄂ICP备2023015464号