关于两个整数的交换的几种写法
2015-11-29 13:51
387 查看
创建一个临时整型变量实现两个整型数的交换:#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){int num1 = 0;int num2 = 0;int swap = 0;scanf("%d %d", &num1, &num2);swap = num1;num1 = num2;num2 = swap;printf("num1=%d,num2=%d", num1, num2);system("pause");return 0;}
通过函数的方法用指针的方法实现两个整型数的交换:
#include<stdio.h>void swap(int *pa, int *pb){int ch;ch = *pa;*pa = *pb;*pb = ch;}int main(){int *num1;int *num2;scanf("%d %d", &num1, &num2);swap(&num1, &num2);printf("num1=%d,num2=%d", num1, num2);system("pause");return 0;}不创建临时变量,通过两个整型数的异或运算,可实现交换:#include<stdio.h>int main(){int num1 = 0;int num2 = 0;scanf("%d %d", &num1, &num2);num1 = num1^num2;num2 = num1^num2;num1 = num1^num2;printf("num1=%d,num2=%d\n", num1, num2);system("pause");return 0;}
不创建临时变量,通过两个整型数的加减运算,可实现交换:
#include<stdio.h>int main(){int num1 = 0;int num2 = 0;scanf("%d %d", &num1, &num2);num1 = num1+num2;num2 = num1-num2;num1 = num1-num2;printf("num1=%d,num2=%d\n", num1, num2);system("pause");return 0;}不创建临时变量,通过两个整型数的乘除运算,可实现交换:
#include<stdio.h>int main(){int num1 = 0;int num2 = 0;scanf("%d %d", &num1, &num2);num1 = num1*num2;num2 = num1/num2;num1 = num1/num2;printf("num1=%d,num2=%d\n", num1, num2);system("pause");return 0;}
相关文章推荐
- Shutdown程序源码学习笔记
- Java日志学习二:Apache Commons Logging (JCL)源码
- 抓取网易新闻
- 【项目实战】——Java实现伪静态——urlrewrite
- typedef的作用
- xUtils框架——DbUtils
- js鼠标滚动图片变大小
- Struts2配置说明
- 最爱的人
- XListView使用
- how to search questions
- iOS—— UIView 动画
- 009Spinner 两种方法
- Slidingmenu使用
- zzuli OJ 1121: 电梯
- PresentModalViewController(模态) 相关问题总结
- new delete memset不解之缘
- linux命令C开发下使用常用函数system与popen开销比较
- zzuli OJ 1119: 一维数组排序
- 模态和非模态的区别