互换两个变量,不使用中间变量
来源:互联网 发布:淘宝女装图片 编辑:程序博客网 时间:2024/05/22 04:25
第一种方法:
a = a+b;
b = a-b;
a = a-b;
代码如下:
#include "stdio.h" int main(void) { int a,b; printf("请输入两个变量a和b:/n"); scanf("%d %d",&a,&b); printf("a和b交换前:/n"); printf("a=%d b=%d/n",a,b); a=a+b; b=a-b; a=a-b; printf("a和b交换后:/n"); printf("a=%d b=%d/n",a,b); system("pause"); return 0; }
缺点:容易溢出。
第二种方法:
a、b异或的结果 ,和a异或得b ,和b异或得a
a = a^b;
b = a^b;
a = a^b;
代码如下:
#include "stdio.h" int main(void) { int a,b; printf("请输入两个变量a和b:/n"); scanf("%d %d",&a,&b); printf("a和b交换前:/n"); printf("a=%d b=%d/n",a,b); a=a^b; b=a^b; a=a^b; printf("a和b交换后:/n"); printf("a=%d b=%d/n",a,b); system("pause"); return 0; }
换成宏替换之后的代码是:
#include "stdio.h" #define swap(a,b) (a)^=(b)^=(a)^=(b) int main(void) { int a,b; printf("请输入两个变量a和b:/n"); scanf("%d %d",&a,&b); printf("a和b交换前:/n"); printf("a=%d b=%d/n",a,b); swap(a,b); printf("a和b交换后:/n"); printf("a=%d b=%d/n",a,b); system("pause"); return 0; }
缺点:只适用于整数。
- 互换两个变量,不使用中间变量
- 互换两个变量,不使用中间变量
- 互换两个变量,不使用中间变量
- 互换两个变量,不使用中间变量
- 互换两个变量,不使用中间变量
- 互换两个变量,不使用中间变量
- 互换两个变量,不使用中间变量
- 互换两个变量,不使用中间变量
- 互换两个变量,不使用中间变量
- 互换两个变量,不使用中间变量
- 互换两个变量,不使用中间变量
- PHP两个变量互换,不使用中间变量
- 不借助中间变量实现两个变量值得互换
- 不使用中间变量交换两个元素
- 不使用中间变量交换两个数
- 不使用中间变量交换两个数
- 不使用中间变量交换两个数
- 不使用中间变量交换两个数
- C++ FAQ Memo
- DOM的作用
- 百钱百鸡问题。
- Java之美[从菜鸟到高手演变]之设计模式
- const char*作为返回值的困惑
- 互换两个变量,不使用中间变量
- 操作系统1——引导扇区的理解
- 双系统,重装windows后,如何恢复linux
- 北斗卫星导航最快明年普及 可短信发送位置信息
- 新手学习windows编程之路
- 生命不息,红尘不止,仅以一程换一种懂得
- 高谈阔论C++
- Don't Ask Coworkers These 10 Things
- Smarty的基本配置【smarty.inc.php】