1:编程实现由键盘输入两个整数,将其赋给变量x和y并输出,交换x和y的值后再输出 用函数输出!

 我来答
加百列windy
高粉答主

2018-11-29 · 每个回答都超有意思的
知道小有建树答主
回答量:2074
采纳率:100%
帮助的人:96.6万
展开全部

可以使用以下三个方法实现:

1、方法一:【中间变量】

通过设置一个变量交换两个值。这种方式是最直接也是最容易理解的方式(为了代码的易读性,推荐使用这种形式),不过有一个临时变量,如果不想创建临时变量则可以使用下面的方式。

2、方法二:【值变化】

通过加减操作实现值得交换,具体代码如下:

3、方法三:【异或运算】。

关于“异或”有几点性质:

1.任一变量X与其自身进行异或结果为0,即 X^X=0。

2.任一变量X与0进行异或结果不变,即 X^0=X。

3.异或运算具有可结合性,即 a^b^c = (a^b)^c = a^(b^c)。

4.异或运算具有可交换性,即 a^b = b^a。

执行过程为:

第一步 a = a ^ b 完成后 a 变量的结果为 a ^ b。

第二步 b = a ^ b 等号右边即是 (a ^ b) ^ b = a ^ (b ^ b) = a ^ 0 = a,经过运算后b中的值为a。

第三步 a = a ^ b 此时赋值号右边的a保存的仍然是 a ^ b 的值,而赋值号右边的b已经是原始的a了。即等号右边的 a ^ b = (a ^ b) ^ a = a ^ b ^ a = (a ^ a) ^ b = 0 ^ b = b, 该值赋值给a,即 a = b。

代码如下:

匿名用户
2013-10-18
展开全部
C语言的#include<stdio.h>int x,y;void swap(){ int t; t=x; x=y; y=t;}void main(){ int a,b; scanf("%d %d",&a,&b); x=a; y=b; swap(); printf("%d %d\n",x,y);}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-18
展开全部
什么语言·
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-18
展开全部
楼上挺对的,我就不重复了。祝你好运
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式