| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5639 人关注过本帖
标题:不用中间变量,交换a,b的值
只看楼主 加入收藏
zhanhb
Rank: 2
等 级:论坛游民
帖 子:29
专家分:70
注 册:2010-12-21
收藏
 问题点数:0 回复次数:10 
不用中间变量,交换a,b的值
新人求解。
main()
{
int a,b;
a^=b^=a^=b;/*这句不懂,大家解释一下,谢谢!*/
printf("%d %d",a,b);
return 0;
}
搜索更多相关主题的帖子: return 
2010-12-24 21:25
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
a ^= ( b ^= ( a ^= b ) )

★★★★★为人民服务★★★★★
2010-12-24 21:29
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:0 
程序:
程序代码:
#include "stdio.h"
void main()
{
    int a,b;
    a=15;
    b=16;
    a=a-b;
    b=a+b;
    a=b-a;
    printf("a=%d,b=%d\n",a,b);
}
结果:
图片附件: 游客没有浏览图片的权限,请 登录注册



Go Go Go
2010-12-24 21:38
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:0 
利用数学算法、

Go Go Go
2010-12-24 21:41
马后炮
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:156
专家分:560
注 册:2010-12-17
收藏
得分:0 
其实,只要找任意的有反函数的二元函数运算,都可以完成,只不过有一些函数有因溢出导致结果不正确的可能
而刚好,异或运算自已是自己的反函数,所以仅用异或运算也可以

樱之雪,晓之车
2010-12-24 21:44
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
收藏
得分:0 
main()
{
int a,b;
scanf("%d,%d",&a,&b);
a=a+b;
b=a-b;
a=a-b;
printf("%d,%d",a,b);
}
也不知是哪位大神想出来的,实在太聪明了

粗心是大敌
2010-12-24 22:21
ash292340644
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:8
专家分:4
注 册:2010-9-28
收藏
得分:0 
hao
2010-12-24 22:32
shuimu10
Rank: 2
等 级:论坛游民
帖 子:53
专家分:48
注 册:2010-11-19
收藏
得分:0 
回复 6楼 zzgzzg00
学习了!!
2010-12-24 22:37
zhanhb
Rank: 2
等 级:论坛游民
帖 子:29
专家分:70
注 册:2010-12-21
收藏
得分:0 
大家都是用新方法来做的,谢谢大家了。我想说的是我已经用异或做好了,不过不是很懂,现在懂了,谢谢2楼解答。
2010-12-25 06:17
zhanhb
Rank: 2
等 级:论坛游民
帖 子:29
专家分:70
注 册:2010-12-21
收藏
得分:0 
回复5楼,最感谢你的答疑
2010-12-25 06:51
快速回复:不用中间变量,交换a,b的值
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017342 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved