交换两个变量的四种方案(面试题)
2016-01-21 13:58
495 查看
方案一:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=10;
int b=20;
int temp;
temp = a;
a = b;
b = temp;
printf("a=%d\nb=%d\n", a, b);
system("pause");
return 0;
}
方案二:(只适合正数)
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=10;
int b=20;
a = a + b;
b = a - b;
a = a - b;
printf("a=%d\nb=%d\n", a, b);
system("pause");
return 0;
}
方案三:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=10;
int b=20;
a = a * b;
b = a / b;
a = a / b;
printf("a=%d\nb=%d\n", a, b);
system("pause");
return 0;
}
方案四:(正负数皆可)(最优)
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=10;
int b=20;
a = a ^ b;
b = a ^ b;
a = a ^ b; //异或时,二进制数按位异或
printf("a=%d\nb=%d\n", a, b);
system("pause");
return 0;
}
结果:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=10;
int b=20;
int temp;
temp = a;
a = b;
b = temp;
printf("a=%d\nb=%d\n", a, b);
system("pause");
return 0;
}
方案二:(只适合正数)
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=10;
int b=20;
a = a + b;
b = a - b;
a = a - b;
printf("a=%d\nb=%d\n", a, b);
system("pause");
return 0;
}
方案三:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=10;
int b=20;
a = a * b;
b = a / b;
a = a / b;
printf("a=%d\nb=%d\n", a, b);
system("pause");
return 0;
}
方案四:(正负数皆可)(最优)
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=10;
int b=20;
a = a ^ b;
b = a ^ b;
a = a ^ b; //异或时,二进制数按位异或
printf("a=%d\nb=%d\n", a, b);
system("pause");
return 0;
}
结果:
相关文章推荐
- [Android]在代码里运行另一个程序的方法
- MySQL 优化
- Google排名优化的几个影响因素
- DB2编程序技巧(1)
- DB2编程序技巧 (四)
- DB2编程序技巧 (六)
- DB2编程序技巧 (三)
- DB2编程序技巧 (九)
- DB2编程序技巧 (七)
- DB2编程序小小技巧
- DB2编程序技巧 (五)
- 二级域名原理以及程序
- DB2编程序技巧 (一)
- DB2编程序技巧 (八)
- DB2编程序技巧 (十)
- DB2优化(简易版)
- Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用于轻量级框架
- C#中尾递归的使用、优化及编译器优化
- 对优化Ruby on Rails性能的一些办法的探究
- 优化Ruby脚本效率实例分享