• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

马先森

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

C语言——两个数互换的妙用

博客申明——

  为学习 C语言的朋友提供良好的学习平台,欢迎转载。

同时也欢迎有其他方面的C语言技巧告知本人发布让更多人受益!

             ———功德无量(呵呵)

程序都经过本作者调试过,如有问题请联系_QQ:434400311

_________________________________________________  正 文 ____________________________________________________________

通常情况下,互换两个数需要一个媒介来替换;

例如变量 “i”:

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     int a = 0, b = 1;  //需要互换的两个数 
 6     int i;  //互换的中间媒介
 7     
 8     //程序主体
 9     i = a;
10     a = b;
11     b = i; 
12     
13     printf("a = %d\t b = %d", a ,b);
14     
15     return 0;
16 }

 

其实也可以这样。

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     int a = 0, b = 1;  //需要互换的两个数 
 6     
 7     //程序主体
 8     a += b;
 9     b = a - b; 
10     a = a - b;
11     
12     printf("a = %d\t b = %d", a ,b);
13     
14     return 0;
15 }

 

最后或许有很多新手程序猿没用过的方法——按位异或 “^”

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     int a = 0, b = 1;  //需要互换的两个数 
 6     
 7     //程序主体
 8     a ^= b;      //a = a ^ b; 
 9     b ^= a;
10     a ^= b;
11     
12     printf("a = %d\t b = %d", a ,b);
13     
14     return 0;
15 }

 END 

 感谢 : ianhom 提出的纠正错误,已经第一时间修改。

posted on 2015-12-11 17:04  马先森  阅读(194)  评论(1)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3