今天看了下交换数值的小程序,网上挺多的,整理了下,,因为参考较多,没一一给出链接,若原作者看到,可以留言,我会添加

// example_1_6_function_swap.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include<iostream>
using namespace std; //done!!效率最高的
void point(int*a,int*b )
{
int t;
t=*a;
*a=*b;
*b=t;
}
//done!!优点是不用中间变量,效率低
void point_jia_jian(int*a,int*b )
{ *a=*a+*b;
*b=*a-*b;
*a=*a-*b;
}
//不要中间变量,位运算实现
//异或的运算规则是:相同为假,不同为真。
//真⊕假=真
//假⊕真=真
//假⊕假=假
//真⊕真=假
//因此,两个相同的数异或等于0,0与任何一个数异或等于那个数本身
//同或运算规则是:相同为真,不同为假
//真⊕假=假
//假⊕真=假
//假⊕假=真
//真⊕真=真
//因此,两个相同的数同或等于1,1与任何一个数同或等于那个数本身
void swap3(int*a,int*b)
{
*a^=*b;
*b^=*a;
*a^=*b;
} //通过四则运算实现,但是缺点是不能对原变量值进行交换,可用于交换整型和浮点型,但是浮点型会出现误差
void swap_jia_jian(int a,int b)
{
/*done!!
a=a+b;
b=a-b;
a=a-b;
cout<<"交换后"<<endl;
cout<<"X="<<a<<" "<<"Y="<<b<<endl;*/ /*
a = a - b;
b = a + b;
a = b - a;
cout<<"交换后"<<endl;
cout<<"X="<<a<<" "<<"Y="<<b<<endl;
*/ //done!!
a=a*b;
b=a/b;
a=a/b;
cout<<"交换后"<<endl;
cout<<"X="<<a<<" "<<"Y="<<b<<endl;
} //通过引用实现
void swap(int &a,int &b)
{
int t;
t=a;
a=b;
b=t;
} int _tmain(int argc, _TCHAR* argv[])
{
int x=,y=;
cout<<"请输入X="<<endl;
cin>>x;
cout<<"请输入Y="<<endl;
cin>>y;
cout<<"交换前"<<endl;
cout<<"X="<<x<<" "<<"Y="<<y<<endl; /*done!!
swap3(&x,&y);
cout<<"交换后"<<endl;
cout<<"X="<<x<<" "<<"Y="<<y<<endl;
*/
/*done!!
swap_jia_jian(x,y);
*/ /*done!!
point_jia_jian(x,y);
*/ /*done!!
point(&x,&y);
cout<<"交换后"<<endl;
cout<<"X="<<x<<" "<<"Y="<<y<<endl;
*/ /* done!!
swap(x,y);
cout<<"交换后"<<endl;
cout<<"X="<<x<<" "<<"Y="<<y<<endl;
*/ system("pause");
return ;
}

交换两个数-c++实现的更多相关文章

  1. c语言实现交换两个数的值

    C语言中要实现交换两个数的值,可以有很多种方法,具体如下所述. 不使用中间变量: // 异或, a^=b^=a^=b; a ^= b; b ^= a; a ^= b; // 加减 a = a + b; ...

  2. 实现pow(int x, int y),即x的y次方 ; 异或交换两个数;

    问题1:实现pow(int x, int y) ,即x的y次方 x的y次方就是有y个x连续乘机,代码如下: #include <stdio.h> #include <stdlib.h ...

  3. Qt_C++交换两个数

    在编程过程中,交换两个数是我用常用的 ,这里做下简单的搬运 bool Widget::swap(int a, int b) { int temp =a; a= b; b = temp; } 这种方式其 ...

  4. C语言交换两个数的值

    #include<stdio.h> int main() { //交换两个数的值 // 方法一 可读性最好 ; ; int temp ; temp = a; a = b; b = temp ...

  5. 20140806 交换两个数 extern “C”用法

    1.交换两个数 方法1.a+b有可能越界 a=a+b; b=a-b; a=a-b; 方法二.不会越界 a=a^b b=a^b; a=a^b;   2.extern "C"用法 ( ...

  6. 几种交换两个数函数(swap函数)的写法和解析

    #include <iostream> using namespace std; /*值传递,局部变量a和b的值确实在调用swap0时变化了,当结束时,他们绳命周期结束*/ void sw ...

  7. java中不创建使用第三方变量,交换两个数的值

    1.直接使用算术运算法交换 先把两个数的和赋值给其中一个,然后做减法.例如num1=num1+num2; 此时num2(交换之后)就等于num1减去num2:废话不多说,直接上代码 public cl ...

  8. php不用第三个变量,交换两个数的值

    //字符串版本 结合使用substr,strlen两个方法实现 $a="a"; $b="b"; echo '交换前 $a:'.$a.',$b:'.$b.'< ...

  9. c语言函数实现交换两个数的值

    代码: #include <stdio.h> void swap(int x,int y) { int temp; temp = x; x = y; y = temp; printf(&q ...

随机推荐

  1. HDU 5669 线段树优化建图+分层图最短路

    用线段树维护建图,即把用线段树把每个区间都标号了,Tree1中子节点有到达父节点的单向边,Tree2中父节点有到达子节点的单向边. 每次将源插入Tree1,汇插入Tree2,中间用临时节点相连.那么T ...

  2. PHP正则表达式的快速学习方法

    1.入门简介 简单的说,正则表达式是一种可以用于模式匹配和替换的强有力的工具.我们可以在几乎所有的基于UNIX系统的工具中找到正则表达式的身影,例如,vi编辑器,Perl或PHP脚本语言,以及awk或 ...

  3. Javascript DOM基础(二) childNodes、children

    childNodes知识点: <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Typ ...

  4. 从最小角回归(LARS)中学到的一个小知识(很短)

    [转载请注明出处]http://www.cnblogs.com/mashiqi (居然有朋友说内容不接地气,那么我就再加一段嘛,请喜欢读笑话的同学直接看第二段)假设这里有一组向量$\left\{ x_ ...

  5. sql语句与数据库2

    增加数据 insert into wyx(xh,nl,xb,sfzh,zcrq)values(0422,28,男,210623198711111111,2016-8-19); 删除数据 delete ...

  6. hbase-architecture

    https://www.mapr.com/blog/in-depth-look-hbase-architecture http://stackoverflow.com/questions/400679 ...

  7. JSBinding / About JSComponent and Serialization

    About JSComponent JSCompnent is a normal Unity script. It inherits from JSSerializer and JSSerialize ...

  8. ping不通 www.baidu.com 163.com

    可以试试这个命令:netsh winsock reset ping不通,但是可以上网,原因有以下几个: 1.远程主机禁止ping 2.firewall禁止ping,icmp 3.dns解析有问题 fr ...

  9. MySQL日志恢复误删记录

    1.查询日志是否开启 show variables like"log_"; 2.查询是用的哪个日志文件 show master status; 3.定位是在什么时间误删的 /usr ...

  10. MSSQL 获取汉字全拼 和 汉字首字母

    --获取全拼 DECLARE @str VARCHAR(max) SET @str= [dbo].[fn_Getquanpin]('中山') PRINT(@str) )) ) as begin ),) ...