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

  1. // example_1_6_function_swap.cpp : 定义控制台应用程序的入口点。
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include<iostream>
  6. using namespace std;
  7.  
  8. //done!!效率最高的
  9. void point(int*a,int*b )
  10. {
  11. int t;
  12. t=*a;
  13. *a=*b;
  14. *b=t;
  15. }
  16. //done!!优点是不用中间变量,效率低
  17. void point_jia_jian(int*a,int*b )
  18. {
  19.  
  20. *a=*a+*b;
  21. *b=*a-*b;
  22. *a=*a-*b;
  23. }
  24. //不要中间变量,位运算实现
  25. //异或的运算规则是:相同为假,不同为真。
  26. //真⊕假=真
  27. //假⊕真=真
  28. //假⊕假=假
  29. //真⊕真=假
  30. //因此,两个相同的数异或等于0,0与任何一个数异或等于那个数本身
  31. //同或运算规则是:相同为真,不同为假
  32. //真⊕假=假
  33. //假⊕真=假
  34. //假⊕假=真
  35. //真⊕真=真
  36. //因此,两个相同的数同或等于1,1与任何一个数同或等于那个数本身
  37. void swap3(int*a,int*b)
  38. {
  39. *a^=*b;
  40. *b^=*a;
  41. *a^=*b;
  42. }
  43.  
  44. //通过四则运算实现,但是缺点是不能对原变量值进行交换,可用于交换整型和浮点型,但是浮点型会出现误差
  45. void swap_jia_jian(int a,int b)
  46. {
  47. /*done!!
  48. a=a+b;
  49. b=a-b;
  50. a=a-b;
  51. cout<<"交换后"<<endl;
  52. cout<<"X="<<a<<" "<<"Y="<<b<<endl;*/
  53.  
  54. /*
  55. a = a - b;
  56. b = a + b;
  57. a = b - a;
  58. cout<<"交换后"<<endl;
  59. cout<<"X="<<a<<" "<<"Y="<<b<<endl;
  60. */
  61.  
  62. //done!!
  63. a=a*b;
  64. b=a/b;
  65. a=a/b;
  66. cout<<"交换后"<<endl;
  67. cout<<"X="<<a<<" "<<"Y="<<b<<endl;
  68. }
  69.  
  70. //通过引用实现
  71. void swap(int &a,int &b)
  72. {
  73. int t;
  74. t=a;
  75. a=b;
  76. b=t;
  77. }
  78.  
  79. int _tmain(int argc, _TCHAR* argv[])
  80. {
  81. int x=,y=;
  82. cout<<"请输入X="<<endl;
  83. cin>>x;
  84. cout<<"请输入Y="<<endl;
  85. cin>>y;
  86. cout<<"交换前"<<endl;
  87. cout<<"X="<<x<<" "<<"Y="<<y<<endl;
  88.  
  89. /*done!!
  90. swap3(&x,&y);
  91. cout<<"交换后"<<endl;
  92. cout<<"X="<<x<<" "<<"Y="<<y<<endl;
  93. */
  94. /*done!!
  95. swap_jia_jian(x,y);
  96. */
  97.  
  98. /*done!!
  99. point_jia_jian(x,y);
  100. */
  101.  
  102. /*done!!
  103. point(&x,&y);
  104. cout<<"交换后"<<endl;
  105. cout<<"X="<<x<<" "<<"Y="<<y<<endl;
  106. */
  107.  
  108. /* done!!
  109. swap(x,y);
  110. cout<<"交换后"<<endl;
  111. cout<<"X="<<x<<" "<<"Y="<<y<<endl;
  112. */
  113.  
  114. system("pause");
  115. return ;
  116. }

交换两个数-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. C# winform应用程序仅能打开一个进程运行

    判断程序是否已经运行,使程序只能运行一个实例: 方法1: //这种检测进程的名的方法,并不绝对有效.因为打开第一个实例后,将运行文件改名后,还是可以运行第二个实例. private static bo ...

  2. C++学习笔记22:设备

    设备类型 设备文件的性质 设备文件不是普通的磁盘文件 读写设备的数据需要与相应的设备驱动器通信 设备文件的类型 字符设备:读写串行数据字节流,如串口.终端等 块设备:随机读写固定尺寸数据块,如磁盘设备 ...

  3. Java-->Gson解析相较于Json

    --> Gson解析jar包:  链接:http://pan.baidu.com/s/1slCeq77 密码:f9ig --> 官方Json解析工具类: package com.drago ...

  4. IT行业的正式入门

    虽然我是计算机专业毕业的大学生,但我自己认为我连什么是 IT都不了解,我热爱Java程序的设计,所以我现在在努力学习,今天是上Java程序设计的第一天,我正式进入IT业,踏上了这条“不归路”.figh ...

  5. MSP430学习笔记:UART

    串通可以两种方法其现 一.USART硬件直接实现 二.通过定时器软件实现 该模块可现现: UART异步串行通讯 SPI同步串行通讯 I2C同步串行通讯 UxCTL控制寄存器 7:PENA 6:PEV ...

  6. Event List 2

    The list of events can be found in src/switch_event.c in a char array called EVENT_NAMES and is summ ...

  7. QTreeWidget创建

    QTreeWidget.顾名思义,这个类用来展示树型结构.同前面说的QListWidget类似,这个类需要同另外一个辅助类QTreeWidgetItem一同使用.不过,既然是提供方面的封装类,即便是看 ...

  8. list control失去焦点后,仍然蓝色高亮度显示

    void CReaProSet::OnNMKillfocusReaprolist(NMHDR *pNMHDR, LRESULT *pResult)//指示控件已经失去焦点 { // TODO:  在此 ...

  9. 解决Selenium Webdriver执行测试时,每个测试方法都打开一个浏览器窗口的问题

    虽然把WebDriver定义为一个静态变量了,但是每次执行测试都要打开多个窗口,挺浪费时间的. 找了很多中方法,比如使用setUpClass, BeforeSuite都没有完全解决问题.后来无意间发现 ...

  10. checkbox 选中、取值处理

    [1].[代码] checkbox 选中.取值处理 跳至 [1] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ...