博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1-3*交换变量
阅读量:5320 次
发布时间:2019-06-14

本文共 1034 字,大约阅读时间需要 3 分钟。

输入两个整数a,b,交换两者的值,然后输出。

样例输入:
824 16
样例输出:
16 824

1.增加零时变量temp,交换a,b值

1 #include
2 int main() 3 { 4 int a,b,temp; 5 scanf("%d%d",&a,&b); 6 temp=b; 7 b=a; 8 a=temp; 9 printf("%d %d\n",a,b);10 return 0;11 }

2.不增加变量,交换a,b值(很少使用:只有定义了加减法的数据类型才能才能采用这种方法)

1 #include
2 int main() 3 { 4 int a,b; 5 scanf("%d%d",&a,&b);  //  a的值  b的值 6 a=a+b;          //  a+b    b 7 b=a-b;          //  a+b   a  8 a=a-b;          //   b    a 9 printf("%d %d\n",a,b);10 return 0;11 }

3.最简单的方法--直接交换a,b输出位置

1 #include
2 int main()3 {4 int a,b;5 scanf("%d%d",&a,&b);6 printf("%d %d\n",b,a);7 return 0;8 } //在算法竞赛中是在比谁能更好的解决问题,而不是比谁写的程序看上去更高级

4.用异或运算

1 #include
2 int main()3 {4 int a,b;5 scanf("%d%d",&a,&b);6 a^=b^=a^=b; /* a^=b^=a^=b;是 {
a^=b; b^=a; a^=b; } 的简写 ^异或运算:二进制比较,相同为0,不同为1; 假设         a=10100111       b=00000110 a=a^b;  a=10100001 b=b^a;  b=10100110 a=a^b;  a=00000110 可以看到此时,ab的值已经交换 */7 printf("%d %d\n",a,b);8 return 0;9 }

 

转载于:https://www.cnblogs.com/xybz/p/9977757.html

你可能感兴趣的文章
OpenCV —— 直方图与匹配
查看>>
简单查看tomcat中部署java服务的内存使用情况
查看>>
jeasyui 造成$.data(...) is undefined报错的原因及解决
查看>>
ACCP7.0-S2-复习自测-15测试分析
查看>>
洛谷P3295 [SCOI2016]萌萌哒(倍增+并查集)
查看>>
loj#6053. 简单的函数(Min_25筛)
查看>>
洛谷P5245 【模板】多项式快速幂
查看>>
js apply 和call的区别
查看>>
调查显示:近半数人“婚房”首付要啃老
查看>>
java网络请求工具类
查看>>
linux常用命令
查看>>
头文件导入方式
查看>>
v-model
查看>>
JAVA基本数据类型所占字节数是多少?(32位系统)
查看>>
[杂题]FZU2190 非提的救赎
查看>>
yum安装方式的php,切换NTS为ZTS版本
查看>>
[学习]对于学习的一点心得
查看>>
linux普通用户su root切换提示没有文件或目录
查看>>
Caliburn教程1
查看>>
RGB颜色对照表
查看>>