精华内容
下载资源
问答
  • 交换变量a和变量b

    千次阅读 2020-09-12 15:40:42
    题目描述:输入两个整数a和b交换他两的,然后输出 方法一 直接创建一个临时变量即可完成此功能 代码如下 int main() { int a = 0; int b = 0; printf("请输入两个整数:"); scanf("%d %d", &a, &b);...

    题目描述:输入两个整数a和b,交换他两的值,然后输出
    方法一
    直接创建一个临时变量即可完成此功能
    代码如下

    int main()
    {
    	int a = 0;
    	int b = 0;
    	printf("请输入两个整数:");
    	scanf("%d %d", &a, &b);
    	printf("交换前:%d%d\n", a, b);
    	int tmp = a;
    	a = b;
    	b = tmp;
    	printf("交换后:%d%d\n", a, b);
    
    	return 0;
    }
    

    程序运行结果如下:
    在这里插入图片描述
    方法二
    如果将上面的代码写成一个函数的话,由于临时变量生命周期的影响,会导致没有交换,所以引进了第一种的改进版(指针版)。
    代码如下

    void swap(int* x, int* y)
    {
    	int tmp = *x;
    	*x = *y;
    	*y = tmp;
    }
    
    int main()
    {
    	int a = 0;
    	int b = 0;
    	printf("请输入两个整数:");
    	scanf("%d %d", &a, &b);
    	printf("交换前:%d%d\n", a, b);
    	swap(&a, &b);
    	printf("交换后:%d%d\n", a, b);
    
    	return 0;
    }
    

    程序运行结果如下:
    在这里插入图片描述
    上面两种方法都需要借助额外的辅助变量空间,接下来介绍两种不借助辅助变量空间便可完成交换的方法
    方法三
    用加减法来交换

    int main()
    {
    	int a = 0;
    	int b = 0;
    	printf("请输入两个整数:");
    	scanf("%d %d", &a, &b);
    	printf("交换前:%d%d\n", a, b);
    	a = a + b;
    	b = a - b;
    	a = a - b;
    	//swap(&a, &b);
    	printf("交换后:%d%d\n", a, b);
    
    	return 0;
    }
    

    方法四
    用异或法来解决,(对应的二进制相同为0,相异为1),可以得到一个规律,一个整数与自己异或为0;与0异或为自己本身。
    代码如下:

    int main()
    {
    	int a = 0;
    	int b = 0;
    	printf("请输入两个整数:");
    	scanf("%d %d", &a, &b);
    	printf("交换前:%d%d\n", a, b);
    	a = a ^ b;
    	b = a ^ b;
    	a = a ^ b;
    	//swap(&a, &b);
    	printf("交换后:%d%d\n", a, b);
    
    	return 0;
    }
    

    我们可以根据不同的情况来选择不同的代码。

    展开全文
  • 代码如下: //by cloudgamer var a = 33,b=44 a=[a,b] b=a[0] a=a[1] 代码如下: //by Mr.司马 var a = 23,b=454; a = {a:b,b:a}; b = a.b; a = a.a; 评:1、2种解法是普遍解,只能交换数字,而3、4种则适用性更
  • 主要介绍了不使用中间变量,C++实现数ab互相转换操作,感兴趣的小伙伴们可以参考一下
  • c语言swap(a,b)值交换的4种实现方法,这么好的东西,尽管简单,但值得发表,以此共享。
  • 大部分语言,例如c语言,交换两个变量需要使用中间变量。 例如交换a,b 伪代码: tmp = a a = b b = tmp python里面可以实现无临时变量交换a,b) = (b,a) 对于它的交换原理我深感好奇,因为这意味着python...
  • 不用临时变量交换a,b值的三种方法

    千次阅读 2019-03-30 19:27:50
    交换a,b是很基本的程序算法,但是绝大多数程序员加入了第三个参数完成二者的交换,那么有没有什么办法不用第三个参数实现交换的呢???来看以下的三种算法

    交换a,b值的三种方法

    第一种:普通的用第三个参数交换两者数值:

    #include <stdio.h>
     int main()
     {
      int a = 10;
      int b = 20;
      int temp;//设置第三个变量
      temp = a;
      a = b;
      b = temp;
      printf(“a=%d,b=%d",a,b);
      return 0;
     }
    

    这种方法的优点是极其稳定,几乎不用担心越界等一系列错误
    但是如何不用这个临时变量达到交换二者数值的目的呢?

    第二种:先相加后相减的方法

    #include <stdio.h>
    int main()
    {
     int a = 10;
     int b = 20;
     a = a + b;
     b = a - b;
     a = a - b;
      printf("a = %d,b = %d",a,b);
      return 0;
    }
    

    这种方法的优点是没有临时变量且较为稳定
    缺点是有可能涉及到溢出但是可能性很小。

    第三种:抑或抑或抑或

    #include <stdio.h>
    int main()
    {
     int a = 10;
     int b = 20;
     a = a ^ b;
     b = a ^ b;
     a = a ^ b;
      printf("a = %d,b = %d",a,b);
      return 0;
    }
    

    这种方法的有点是:比较高端
    缺点是出错的概率相较于第二种方法更大

    如果帮到你的话请关注我!!!!!

    展开全文
  • method 1: ab = ba method 2: a = a+b b = a-b ... 您可能感兴趣的文章:python交换两个变量方法对Python中实现两个数的值交换的集中方法详解对变量赋值的理解–Pyton中让两个互换的实现方法
  • C++中交换两个变量的方法

    千次阅读 多人点赞 2019-11-05 18:21:03
    即不能通过将变量名传入函数的方式进行交换,因为这种方式是将进行拷贝后作为参数传入函数,也就是说函数内部使用的拷贝的,在函数执行完后就会销毁,而不是对变量的原值进行操作。 而在C++中需要通...

    首先,需要说明的是,在C++语言中,不能使用下面的方式传值:

    template<class T>
    void swap(T a,T b){
    	T temp=b;
    	b=a;
    	a=temp;
    }
    

    即不能通过将变量名传入函数的方式进行交换,因为这种方式是将值进行拷贝后作为参数传入函数,也就是说函数内部使用的拷贝的值,在函数执行完后就会销毁,而不是对变量的原值进行操作。
    而在C++中需要通过以下方式交换两个变量的值,下面详细介绍。

    方法一:传指针的方式

    在C++中,可以通过传入两个变量的地址来进行交换,这样在定义交换函数时,需要将参数定义为指针。下面就是其示例。
    实现实例:

    //方式一:传指针
    template<class T>
    void swap1(T *p1,T *p2){
        T temp = *p1; //temp的值为p1所指向的值
        *p1 = *p2;    //*p1的值为p2所指向的值
        *p2 = temp;   //*p2的值为temp所指向的值,即为temp所指向的值p1
    }
    //测试
    int main(){
        int a=10;
        int b=-23;
        swap1(&a,&b); //这就是调用方法的示例
        cout<<a<<","<<b;
        return 0;
    }
    

    注:此方法在调用时需要传入地址,即要传入&变量名

    方法二:通过定义宏的方式实现

    也可以通过在函数头部定义宏的方式实现,但是这里需要传入3个变量,其中一个作为中间变量,这种方式在C语言中常用。
    实现实例:

    #define SWAP2(a,b,temp)((temp)=(a),(a)=(b),(b)=(temp)) //定义宏
    int main(){
    	int a=15;
    	int b=-56
    	int temp;
    	SWAP2(a,b,temp);   
    	cout<<a<<";"<<b<<endl; //此时的结果为-56;15
    }
    

    方法三:用引用进行交换

    用引用交换也就是用别名交换
    实现实例:

    template<class T>
    void swaps(T &a,T &b){
    	T temp = a;
    	a = b;
    	b = temp;
    }
    int main(){
    	int a=-2;
    	int b=16;
    	swaps(a,b);
    	cout<<a<<endl<<b; //现在a为16,b为-2
    	return 0;
    }
    

    方法四:使用C++自带的交换函数

    实例:

    int main(){
    	int a,b;
    	a = 100;
    	b = -200;
    	std::swap(a,b);
    	cout<<a<<endl<<b; //此时b=100;a=-200
    }
    
    展开全文
  • 交换变量ab值的三种方法

    千次阅读 2017-11-04 13:51:37
    a=a^b;//比如:a=1010 b=a^b;// b=1101 a=a^b;// a^b=0111

    最常见的写法:

        int a = 10;
        int b = 20;
        int c = 0;
         c = a;
         a = b;
         b = c;
    

    在不创建第三个变量的情况下:

        a=a+b;
        b=a-b;
        a=a-b;

       a=a^b;//比如:a=1010            
       b=a^b;//     b=1101 
       a=a^b;//   a^b=0111
    展开全文
  • 如何对变量ab进行交换 //格式: int a=3,b=5; int temp; temp=a; a=b; b=temp; 想要将两个变量的进行交换、需要定义一个中间变量 将a的赋给中间变量temp temp=3 再把b赋给a a=5 然后把temp的赋给...
  • 本文主要描述,如何不使用中间,将两个变量进行交换。 一、普通做法 var a = 1, b = 2, tmp; tmp = a; a = b; b = tmp; 普通的做法就是声明多一个临时变量tmp,进行数据交换过程中的缓存。这样的做法直观...
  • 编写程序,输入两个整数a和b交换它们的,然后输出。 输入 两个整数a和b 输出 ab交换后的。注意:两个数之间有1个空格,输出后换行。 样例输入 3 5 样例输出 5 3 提示 来源 hnldyhy 方法一 #...
  • a = a+b --&gt;1+2=3 b = a-b—&gt;3-2=1=b a = a-b----&gt;3-1=2=a 方法二: a = a^b —&gt;001 010 011&gt;3 b =b^a —&gt;010 011 001&gt;1 a = a^b—&gt;011 001 010&gt;2 ...
  • C语言中利用Swap函数交换变量ab

    千次阅读 多人点赞 2020-10-21 17:43:00
    C语言中利用Swap函数交换变量ab 常见错误写法 error1 void Sawp_error1(int a,int b) { int tmp; tmp=a; a=b; b=tmp; } int main() { int a=10; int b=20; Sawp_error1(a,b); printf("%d %d\n",a,b); ...
  • 题目:定义整型变量 ab,写出将 ab 两个变量值进行互换的程序
  • C语言交换ab值的几种写法

    万次阅读 2019-07-19 15:30:26
    定义中间变量c,吧a值赋给c,把b值赋给a,把c值赋给b,完成交换 #include <stdio.h> int main() { int a = 2; int b = 5; int c = a; printf("a=%d\n", a = b); { printf("b=%d\n", b = c); ...
  • 该方法是创建一个新的整型变量,将这个新创建的变量作为变量ab交换的中间介质,避免在交换数值的时候造成信息丢失;说简单点可以理解为a,b是分别装有蚝油酱油的两个瓶子(即a=蚝油,b=酱油),为实现将a,b两个...
  • 在学习程序语言进行程序设计的时候,交换两个变量是经常要使用的。通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换。代码如下: int a,b; a=10; b=15; int t; t=a; a=b; b=t; ...
  • 交换两个变量ab

    千次阅读 2017-07-07 16:25:54
    问题:交换两个变量ab,并输出交换后的。 一开始遇到这道题,我的基本想法就是定义一个新的变量c作为中间变量,让c=a,a=b.b=c就可任意完成这个问题了。程序代码如下:   #include&lt;stdio.h&...
  • c++:交换a和b

    千次阅读 2019-10-24 10:51:25
    #include using namespace std; int main() ... “请输入a和b:” << endl << “a=” ; cin >> a; cout << “b=” ; cin >> b; c=b; b=a; a=c; cout << “a=” &l...
  • 不用中间变量交换a和b

    千次阅读 2016-09-21 09:07:16
    定理:如果 a ^ b = c,则 a ^ c = bb ^ c = aa ^ b = [(~a) & b] | [(~b) & a] 异或真a b 结果 1 1 0 0 0 0 1 0 1 0 1 ... 若 a = 5,b = 6,用4位二进制来表示 a b
  • publicstaticvoidtest(inta,intb){ System.out.println("交换a="+a); System.out.println("交换b="+b); a=a+b; //a=3+5=8 b=a-b; //b=8-5=3 a=a-b; //a=8-3=5 System.out.println("交换a="+a); Sys....
  • 7-4 交换a和b

    2020-09-28 11:04:07
    交换变量ab,如输入a的为1,b为5,则输出a的为5,b为1。 输入格式: 输入两个整数,之间用一个空格间隔。 输出格式: 在一行中按照“a=x,b=y”的格式输出,其中xy均是原样输出,不加宽度控制。 #...
  • 交换a,b值,不使用第三个变量

    千次阅读 2019-03-27 17:29:17
    今天做笔试遇到一个问题 //加减法 int a=3; int b=5; a=a+b; b=a-b;//b=3 a=a-b;//a=5 ...//乘除法:可以处理整型浮点型变量,但在处理浮点型变量时也存在精度损失问题,b必不为0。 int a=3; int...
  • [a, b] = [b, a] //或者 {a, b} = {b, a} 后来,把这个问题问了别的小伙伴,一个同学提出对于数值变量可以使用加减法(这个方法让我感觉到了算法的魅力) a = a + b b = a - b a = a - b 讨论了以后发现,也可以...
  • 方法1.通过相加减可以达到两数交换的目的,优点省事嘛,缺点就是有可能会产生数据溢出的情况。 代码如下: #define _CRT_SECURE_NO_WARNINGS ... b = a - b; a = a - b; printf("a=%d b=%d\n",...
  • 7-3 交换a和b (10分)

    千次阅读 2020-04-09 21:43:47
    交换变量ab,如输入a的为1,b为5,则输出a的为5,b为1。 输入格式: 输入两个整数,之间用一个空格间隔。 输出格式: 在一行中按照“a=x,b=y”的格式输出,其中xy均是原样输出,不加宽度控制。 ...
  • 要求不能使用第三变量来达到交换两个变量值呢? 方法一: void main() { int a,b; printf(&amp;quot;请输入两个变量:&amp;quot;); scanf(&amp;quot;%d%d&amp;quot;,&amp;amp;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 179,237
精华内容 71,694
关键字:

交换变量a和b的值