c面试题:不用中间变量,完成数值交换!
来源:互联网 发布:小区信息发布查询软件 编辑:程序博客网 时间:2024/05/23 15:09
交换数值,可能很多初学者都会采用中间变量来方便简单的完成,此种方法,虽比较符合人的逻辑思维,但并不是最佳方案。计算机其实更乐于处理一些逻辑运算(比如位运算),它在这方面相当高效。原因嘛,具体可以看看《计算机组成原理》。下面我将代码贴出:
#include <stdio.h>
#include <stdlib.h>int main()
{
int a=2;
int b=9;//逻辑运算亦或完成交换 快速高效
a=a^b;
b=a^b;
a=a^b;
printf("a = %d , b = %d\n :",a,b);
//加减法完成交换
a=a+b;
b=a-b;
a=a-b;
printf("a = %d , b = %d\n :",a,b);
return 0;
}//运行结果
0 0
- c面试题:不用中间变量,完成数值交换!
- C语言位操作--不用中间变量交换两数值
- 不用中间变量完成数据的交换
- [转]不用中间变量交换两个数值变量的值
- 一道面试题——不用中间变量交换两个整型变量的值
- 一面试题:不用任何中间变量,完成两个int型的交换。
- C语言中的位操作(9)--不用中间变量交换两数值
- 不用中间变量进行数值交换的算法
- 不用中间变量实现交换
- 不用中间变量实现交换
- 不用中间变量实现交换
- 不用中间变量实现交换
- 不用中间变量进行两个数的交换(C语言)
- 【C++】怎样不用中间变量temp 实现两个数交换
- 面试题 不使用中间变量交换两个字符
- java面试题之----无中间变量实现交换数字
- 不用中间变量,交换整型变量
- 判断两个数值中最大的一个以及不用中间变量交换两个数
- 面向对象的三个基本元素,五个基本原则
- Android UI ——再谈Button
- 纯js数字时钟
- Apostrophe not preceded by \\
- 浅谈C语言的缓冲区[转]
- c面试题:不用中间变量,完成数值交换!
- C面试题:10进制转2进制
- C学习笔记之:Register(寄存器类型变量)
- C:简单代码
- C:简单问题:捐款
- ASCII表
- C简单加密程序 字母循环加5,数字不变!
- Coupons / 取样问题
- NYOJ 73 比大小