交换两个数的值以及不使用临时变量交换两个数的值

使用临时变量非常简单

#include<stdio.h>

int main()

{

int a = 1, b = 2, c = 0;

printf("a=");

scanf("%d", &a);

printf("b=");

scanf("%d", &b);

c = a;

a = b;

b = c;

printf("a=%d,b=%d\n", a, b);

system("pause");

return 0;

}

这时候我考虑可不可以不加入临时变量而同样达到目的呢

可以采用加减的方法

#include<stdio.h>

int main()

{

int a = 1, b = 2;

printf("a=");

scanf("%d", &a);

printf("b=");

scanf("%d", &b);

a = a + b;

b = a - b;

a = a - b;

printf("a=%d,b=%d\n", a, b);

system("pause");

return 0;

}

以及异或的方法

#include<stdio.h>

int main()

{

int a = 1, b = 2;

printf("a=");

scanf("%d", &a);

printf("b=");

scanf("%d", &b);

a = a ^ b;//构建一个集合

b = a ^ b;//取出集合中的另一个数

a = a ^ b;//取出集合中的另一个数

printf("a=%d,b=%d\n", a, b);

system("pause");

return 0;

}

时间: 2024-10-24 18:26:48

交换两个数的值以及不使用临时变量交换两个数的值的相关文章

不用临时变量交换两个变量的值——函数对象

// 不使用中间临时变量,交换两对象的值 ,废话少说,直接上代码 // Virtual.cpp : 定义控制台应用程序的入口点. #include "stdafx.h" #include <iostream> #include <memory> #include <algorithm> #include <set> #include <vector> #include <map> #include <stri

不使用临时变量交换两个变量值

题目:不使用临时变量交换两个变量值 分析:使用加.减.乘.亦或(aba==b),四种方法分别如下: //方法一:利用加法 int Swap3(int *x, int *y) { *x = *x + *y;//*x是二者和 *y = *x - *y;//*y是*x *x = *x - *y;//*x是*y } //方法二:利用减法 int Swap1(int *x, int *y) { *x = *x - *y;//*x是二者差值 *y = *x + *y;//*x是*y *x = *y - *x

不使用临时变量 交换两个变量值

不使用临时变量 交换两个变量值1.$a = $a+$b;$b = $a-$b;$a= $a-$b; 2.list($a, $b) = array($b, $a); 3. $a = $a ^ $b;$b = $a ^ $b;$a = $a ^ $b;

设置一个临时变量交换两个变量的值

当要交换两个数的值时,通常的做法是定义一个临时变量,然后再进行交换. C语言代码如下: # include <stdio.h> int main() {    int a, b;    int *p;    //临时变量        scanf("%d %d", &a, &b);        p = a;    a = b;    b = p;        printf("交换后的值为:");    printf("%d 

JAVA不用临时变量交换两个变量的值

交换两个变量的值,不适用临时变量 1 public class Test{ 2 public static void main(String[] args){ 3 int a = 1; 4 int b = 2; 5 // 请交换两个变量的值 6 } 7 } 交换两变量的值 加减实现交换 1 public class Test{ 2 public static void main(String[] args){ 3 int a = 1; 4 int b = 2; 5 // 请交换两个变量的值 6

JavaScript不用临时变量交换两个变量的值的七种解决方案

前言 这篇文章总结了七种办法来交换a和b的变量值 var a = 123; var b = 456; 交换变量值方案一 最最最简单的办法就是使用一个临时变量了,不过使用临时变量的方法实在是太low了 var t; t = a; a = b; b = t; 首先把a的值存储到临时变量中,然后b赋值给a,最后拿出临时变量中的a值赋给b,这个办法是最基本的了 交换变量值方案二 下面的方案都不会有临时变量,我总结了一下,其实不使用临时变量的思路都是让其中一个变量变成一个a和b都有关系的值,这样可以先改变

Python、C++中编写函数以及不使用临时变量交换两变量值的比较

在C++中,交换两变量的值一般第一反应都会是如下的代码: { temp=a; a=b; b=temp } 但是题目要求不允许使用临时变量temp呢?可能就需要想一会了.但也有解决办法: { b=a+b; a=b-a; b=b-a; } 这种做法在a和b数值较小的情况下是对的,但是a+b如果很大则会溢出,所以也不是最优的解法.最好的方法是使用异或: { a ^= b b ^=a a ^=b } 在Python中这个问题就太弱智啦! a,b=b,a 直接一行搞定! 如果题目要求编写一个函数来交换两变

不允许创建临时变量交换两个变量的内容

在学习C语言的时候,涉及到两个变量值的交换,其中用到临时变量.如果在没有临时变量的情况下,该如何做呢? 方法一:C语言提供的异或运算就可以实现这样的操作.异或运算符"^"也称"XOR"运算符,它的规则是:若参加运算的两个二进位同号,则结果为0(假):异号为1(真). 即: 0 ^ 0 = 0,            0 ^ 1 = 1,            1 ^ 0 = 1,            1 ^ 1 = 0.       例如:a=5, b=9, 要想

不使用临时变量互换两个变量的值

1.数组直取值法 var a=1,b=2; b = [a,a=b][0]; console.log(a); //2 console.log(b); //1 2.异或法 a=a^b; b=b^a; a=a^b; 3..加减法 var a=1,b=2; a = a+b; b = a-b; a = a-b; console.log(a); //2 console.log(b); //1 4.类型转数组 var a=1,b=2; a = [a,b]; b = a[0]; a = a[1]; consol